<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-us" xml:lang="en-us">
<head>
  <meta charset="utf-8" />
  <meta name="generator" content="pandoc" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
  <title>tr-181-2-13-0-cwmp.xml</title>
  <style>
    code{white-space: pre-wrap;}
    span.smallcaps{font-variant: small-caps;}
    div.columns{display: flex; gap: min(4vw, 1.5em);}
    div.column{flex: auto; overflow-x: auto;}
    div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
    /* The extra [class] is a hack that increases specificity enough to
       override a similar rule in reveal.js */
    ul.task-list[class]{list-style: none;}
    ul.task-list li input[type="checkbox"] {
      font-size: inherit;
      width: 0.8em;
      margin: 0 0.8em 0.2em -1.6em;
      vertical-align: middle;
    }
  </style>
  <!-- Sidebar ToC styles -->

  <style>
  @media screen and (min-width: 60em) {
      body {
          display: flex;
          align-items: stretch;
          margin: 0px;
          /* XXX this is experimental; may need to insert zero-width spaces */
          overflow-wrap: break-word;
      }

      #main {
          flex: 4 2 auto;
          overflow: auto;
          order: 2;
          padding: 5px;
      }

      #TOC {
          position: sticky;
          order: 1;
          flex: 1 0 auto;
          margin: 0 0;
          top: 0px;
          left: 0px;
          height: 100vh;
          line-height: 1.4;
          resize: horizontal;
          font-size: larger;
          overflow: auto;
          border-right: 1px solid #73AD21;
          padding: 5px;
          max-width: 20%;
      }

      #TOC ul {
          margin: 0.35em 0;
          padding: 0 0 0 1em;
          list-style-type: none;
      }

      #TOC ul ul {
          margin: 0.25em 0;
      }

      #TOC ul ul ul {
          margin: 0.15em 0;
      }

      #TOC {
          z-index: 1;
      }
  }
  </style>

  <!-- ToC expansion and contraction script -->

  <script>
  window.addEventListener('DOMContentLoaded', function() {
      var expandables = document.getElementsByClassName('expandable');
      for (i = 0; i < expandables.length; i++) {
          expandables[i].addEventListener('click', function() {
              this.parentElement.querySelector('.collapsed').classList
                  .toggle('expanded');
              this.classList.toggle('collapsible');
          });
      }
  });
  </script>

  <!-- ToC expansion and contraction styles -->

  <style>
  .expandable {
      cursor: pointer;
      user-select: none;
      display: list-item;
      /* Circled Plus + non-breakable space */
      list-style-type: "\2295\A0";
  }

  .collapsible {
      /* Circled Minus + non-breakable space */
      list-style-type: "\2296\A0";
  }

  .collapsed {
      display: none;
  }

  .expanded {
      display: grid; /* needed by the 'order' property */
  }
  </style>

  <!-- ToC sorting script (works for object names and profile headers) -->

  <script>
  window.addEventListener('DOMContentLoaded', function() {
      /* 'A.B.' -> {prefix: '', name: 'A.B.', 'version': ''}
         '_Baseline:1' -> {prefix: '_', name: 'Baseline', version: '1'} */
      var regex = /^(?<prefix>_?)(?<name>[^:]*)(:?)(?<version>\d*)/;
      var lists = document.getElementsByClassName('ordered');
      for (var i = 0; i < lists.length; i++) {
          var items = lists[i].children;
          var temp = [];
          for (var j = 0; j < items.length; j++) {
              /* this assumes that the first child contains the text */
              temp.push([j, items[j].children[0].innerText]);
          }
          temp.sort((a, b) => {
              /* 'Notation' (which is used for profiles) must come first */
              var a1 = a[1] == 'Notation' ? ' Notation' : a[1];
              var b1 = b[1] == 'Notation' ? ' Notation' : b[1];
              var a1_groups = a1.match(regex).groups;
              var b1_groups = b1.match(regex).groups;
              var a1_tuple =  [
                  a1_groups.name.toLowerCase() + (a1_groups.prefix || '~'),
                  parseInt(a1_groups.version || 0)];
              var b1_tuple =  [
                  b1_groups.name.toLowerCase() + (b1_groups.prefix || '~'),
                  parseInt(b1_groups.version || 0)];
              return a1_tuple < b1_tuple ? -1 : a1_tuple > b1_tuple ? 1 : 0;
          });
          temp.forEach((order_text, j) => {
              var k = order_text[0];
              items[k].style.order = j;
          });
      }
  });
  </script>

  <!-- Automatic title generation (from anchor ids) script
       XXX only works for non-deprecated object parameters and doesn't
           show correct full paths; should get rid of it? -->

  <script>
  window.addEventListener('DOMContentLoaded', function() {
      var pars = document.getElementsByClassName('parameter');
      var regex = /\w\.\w+:[0-9.]+\./;
      for (var i = 0; i < pars.length; i++) {
          if (pars[i].firstElementChild && pars[i].firstElementChild.
                  firstElementChild) {
              pars[i].firstElementChild.title =
                  pars[i].firstElementChild.firstElementChild.id.
                  replace(regex, '');
          }
      }
  });
  </script>

  <!-- Automatic on-hover link generation script -->

  <script>
  window.addEventListener('DOMContentLoaded', function() {
      var hoverlink = null;

      var anchors = document.querySelectorAll('td span[id]:not(:empty)');
      for (var i = 0; i < anchors.length; i++) {
        var cell = anchors[i].parentElement;

        cell.addEventListener('mouseenter', event => {
          var target = event.target;
          var anchor = target.querySelector('span[id]:not(:empty)');

          /* derive the item type from the row's first class item,
           * which might have a leading 'deprecated-' etc. and
           * might also contain additional hyphens */
          var itemType = (target.parentElement.classList.item(0) || 'item').
              replace(/^\w+-/, '').replace(/-/g, ' ');

          if (hoverlink) {
            hoverlink.remove();
            hoverlink = null;
          }

          hoverlink = document.createElement('a');
          hoverlink.href = '#' + anchor.id;
          hoverlink.className = 'hoverlink';
          hoverlink.title = 'Permalink to this ' + itemType;
          target.appendChild(hoverlink);
        });

        cell.addEventListener('mouseleave', () => {
          if (hoverlink) {
            hoverlink.remove();
            hoverlink = null;
          }
        });
      }
  });
  </script>

  <!-- Hoverlink styles -->

  <style>
  :root {
      --hoverlink-size: 0.9em;
  }

  .hoverlink {
      text-decoration: none;
  }

  .hoverlink::after {
      position: absolute;
      display: inline-block;
      content: "";
      width: var(--hoverlink-size);
      height: var(--hoverlink-size);
      background-size: var(--hoverlink-size) var(--hoverlink-size);
      background-image: url();
  }
  </style>

  <!-- Table body expansion and contraction script -->

  <script>
  window.addEventListener('DOMContentLoaded', function() {
      var showables = document.getElementsByClassName('showable');
      for (var i = 0; i < showables.length; i++) {
          var showable = showables[i];
          showable.addEventListener('click', function() {
              this.classList.toggle('show');
          });
      }

      showables = document.getElementsByClassName('showable2');
      for (var i = 0; i < showables.length; i++) {
          var showable = showables[i];
          showable.addEventListener('click', function(event) {
              this.classList.toggle('show2');
              event.stopPropagation();
          });
      }
  });
  </script>

  <!-- Table body expansion and contraction styles -->

  <style>
  .chevron {
      color: var(--link-color);
      cursor: pointer;
  }

  .chevron::before {
      /* Single Right-Pointing Angle Quotation Mark */
      content: "\00203A ";
  }

  .chevron .click::after {
      content: " Click to show/hide...";
  }

  .hide {
      display: none;
  }

  .show tr {
      display: table-row;
  }

  .show td div, .show ul, .show ol {
      display: block;
  }

  .show td span {
      display: inline;
  }

  .show2 *.hide {
      display: none;
  }

  </style>

  <!-- Global styles (that affect the entire document) -->

  <style>
  /* light mode support */
  @media (prefers-color-scheme: light) {
    :root {
      --background-color: white;
      --foreground-color: black;
      --diff-background-color: aliceblue;
      --link-color: blue;
      --parameter-color: white;
      --object-color: #ffff99;
      --command-color: #66cdaa;
      --event-color: #66cdaa;
      --argument-container-color: silver;
      --argument-object-color: pink;
      --argument-parameter-color: #ffe4e1;
      --mountable-object-color: #b3e0ff;
      --mountpoint-object-color: #4db8ff;
      --stripe-direction: 90deg;
      --stripe-stop-point-1: 1%;
      --stripe-stop-point-2: 2%;
      --stripe-color-deprecated: #eeeeee;
      --stripe-color-obsoleted: #dddddd;
      --stripe-color-deleted: #cccccc;
    }
  }

  /* dark mode support */
  @media (prefers-color-scheme: dark) {
    :root {
      --background-color: black;
      --foreground-color: white;
      --diff-background-color: #0f0700;
      --link-color: lightblue;
      --parameter-color: black;
      --object-color: #bbbb44;
      --command-color: #56bd9a;
      --event-color: #56bd9a;
      --argument-container-color: #777777;
      --argument-object-color: #dfa0ab;
      --argument-parameter-color: #bfa4a1;
      --mountable-object-color: #b3e0ff;
      --mountpoint-object-color: #3da8ef;
      --stripe-color-deprecated: #555555;
      --stripe-color-obsoleted: #444444;
      --stripe-color-deleted: #333333;
    }
    .hoverlink {
      filter: invert(1);
    }
  }

  body, table {
      background-color: var(--background-color);
      color: var(--foreground-color);
      font-family: helvetica, arial, sans-serif;
      font-size: 9pt;
  }

  h1 {
      font-size: 14pt;
  }

  h2 {
      font-size: 12pt;
  }

  h3 {
      font-size: 10pt;
  }

  a:link, a:visited {
      color: var(--link-color);
  }

  sup {
      vertical-align: super;
  }

  table {
      text-align: left;
      vertical-align: top;
  }

  td, th {
      padding: 2px;
      text-align: left;
      vertical-align: top;
  }

  /* this is intended for hoverlinks */
  td span {
      padding-right: 2px;
  }

  table.middle-width {
      width: 60%;
  }

  table.full-width {
      width: 100%;
  }

  thead th {
      background-color: #999999;
  }

  table.partial-border {
      border-left-style: hidden;
      border-right-style: hidden;
      border-collapse: collapse;
  }

  table.partial-border th,
  table.partial-border td {
      border-style: solid;
      border-width: 1px;
      border-color: lightgray;
  }

  td > div,
  td > p {
      margin-block-start: 0;
      margin-block-end: 1em;
  }

  td > div:last-of-type,
  td > p:last-of-type {
      margin-block-end: 0;
  }

  .centered {
      text-align: center;
  }

  .inserted {
      color: blue;
  }

  .removed {
      color: red;
      text-decoration: line-through;
  }

  /* XXX this is a bad name */
  .diffs {
      background-color: var(--diff-background-color);
      opacity: 0.8;
  }

  .parameter {
      background-color: var(--parameter-color);
  }

  .deprecated-parameter {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--parameter-color),
          var(--parameter-color) var(--stripe-stop-point-1),
          var(--stripe-color-deprecated) var(--stripe-stop-point-1),
          var(--stripe-color-deprecated) var(--stripe-stop-point-2));
  }

  .obsoleted-parameter {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--parameter-color),
          var(--parameter-color) var(--stripe-stop-point-1),
          var(--stripe-color-obsoleted) var(--stripe-stop-point-1),
          var(--stripe-color-obsoleted) var(--stripe-stop-point-2));
  }

  .deleted-parameter {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--parameter-color),
          var(--parameter-color) var(--stripe-stop-point-1),
          var(--stripe-color-deleted) var(--stripe-stop-point-1),
          var(--stripe-color-deleted) var(--stripe-stop-point-2));
  }

  .object {
      background-color: var(--object-color);
  }

  .deprecated-object {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--object-color),
          var(--object-color) var(--stripe-stop-point-1),
          var(--stripe-color-deprecated) var(--stripe-stop-point-1),
          var(--stripe-color-deprecated) var(--stripe-stop-point-2));
  }

  .obsoleted-object {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--object-color),
          var(--object-color) var(--stripe-stop-point-1),
          var(--stripe-color-obsoleted) var(--stripe-stop-point-1),
          var(--stripe-color-obsoleted) var(--stripe-stop-point-2));
  }

  .deleted-object {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--object-color),
          var(--object-color) var(--stripe-stop-point-1),
          var(--stripe-color-deleted) var(--stripe-stop-point-1),
          var(--stripe-color-deleted) var(--stripe-stop-point-2));
  }

  .command {
      background-color: var(--command-color);
  }

  .deprecated-command {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--command-color),
          var(--command-color) var(--stripe-stop-point-1),
          var(--stripe-color-deprecated) var(--stripe-stop-point-1),
          var(--stripe-color-deprecated) var(--stripe-stop-point-2));
  }

  .obsoleted-command {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--command-color),
          var(--command-color) var(--stripe-stop-point-1),
          var(--stripe-color-obsoleted) var(--stripe-stop-point-1),
          var(--stripe-color-obsoleted) var(--stripe-stop-point-2));
  }

  .deleted-command {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--command-color),
          var(--command-color) var(--stripe-stop-point-1),
          var(--stripe-color-deleted) var(--stripe-stop-point-1),
          var(--stripe-color-deleted) var(--stripe-stop-point-2));
  }

  .event {
      background-color: var(--event-color);
  }

  .deprecated-event {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--event-color),
          var(--event-color) var(--stripe-stop-point-1),
          var(--stripe-color-deprecated) var(--stripe-stop-point-1),
          var(--stripe-color-deprecated) var(--stripe-stop-point-2));
  }

  .obsoleted-event {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--event-color),
          var(--event-color) var(--stripe-stop-point-1),
          var(--stripe-color-obsoleted) var(--stripe-stop-point-1),
          var(--stripe-color-obsoleted) var(--stripe-stop-point-2));
  }

  .deleted-event {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--event-color),
          var(--event-color) var(--stripe-stop-point-1),
          var(--stripe-color-deleted) var(--stripe-stop-point-1),
          var(--stripe-color-deleted) var(--stripe-stop-point-2));
  }

  .argument-container {
      background-color: var(--argument-container-color);
  }

  .deprecated-argument-container {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--argument-container-color),
          var(--argument-container-color) var(--stripe-stop-point-1),
          var(--stripe-color-deprecated) var(--stripe-stop-point-1),
          var(--stripe-color-deprecated) var(--stripe-stop-point-2));
  }

  .obsoleted-argument-container {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--argument-container-color),
          var(--argument-container-color) var(--stripe-stop-point-1),
          var(--stripe-color-obsoleted) var(--stripe-stop-point-1),
          var(--stripe-color-obsoleted) var(--stripe-stop-point-2));
  }

  .deleted-argument-container {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--argument-container-color),
          var(--argument-container-color) var(--stripe-stop-point-1),
          var(--stripe-color-deleted) var(--stripe-stop-point-1),
          var(--stripe-color-deleted) var(--stripe-stop-point-2));
  }

  .argument-parameter {
      background-color: var(--argument-parameter-color);
  }

  .deprecated-argument-parameter {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--argument-parameter-color),
          var(--argument-parameter-color) var(--stripe-stop-point-1),
          var(--stripe-color-deprecated) var(--stripe-stop-point-1),
          var(--stripe-color-deprecated) var(--stripe-stop-point-2));
  }

  .obsoleted-argument-parameter {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--argument-parameter-color),
          var(--argument-parameter-color) var(--stripe-stop-point-1),
          var(--stripe-color-obsoleted) var(--stripe-stop-point-1),
          var(--stripe-color-obsoleted) var(--stripe-stop-point-2));
  }

  .deleted-argument-parameter {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--argument-parameter-color),
          var(--argument-parameter-color) var(--stripe-stop-point-1),
          var(--stripe-color-deleted) var(--stripe-stop-point-1),
          var(--stripe-color-deleted) var(--stripe-stop-point-2));
  }

  .argument-object {
      background-color: var(--argument-object-color);
  }

  .deprecated-argument-object {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--argument-object-color),
          var(--argument-object-color) var(--stripe-stop-point-1),
          var(--stripe-color-deprecated) var(--stripe-stop-point-1),
          var(--stripe-color-deprecated) var(--stripe-stop-point-2));
  }

  .obsoleted-argument-object {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--argument-object-color),
          var(--argument-object-color) var(--stripe-stop-point-1),
          var(--stripe-color-obsoleted) var(--stripe-stop-point-1),
          var(--stripe-color-obsoleted) var(--stripe-stop-point-2));
  }

  .deleted-argument-object {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--argument-object-color),
          var(--argument-object-color) var(--stripe-stop-point-1),
          var(--stripe-color-deleted) var(--stripe-stop-point-1),
          var(--stripe-color-deleted) var(--stripe-stop-point-2));
  }

  .mountable-object {
      background-color: var(--mountable-object-color);
  }

  .deprecated-mountable-object {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--mountable-object-color),
          var(--mountable-object-color) var(--stripe-stop-point-1),
          var(--stripe-color-deprecated) var(--stripe-stop-point-1),
          var(--stripe-color-deprecated) var(--stripe-stop-point-2));
  }

  .obsoleted-mountable-object {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--mountable-object-color),
          var(--mountable-object-color) var(--stripe-stop-point-1),
          var(--stripe-color-obsoleted) var(--stripe-stop-point-1),
          var(--stripe-color-obsoleted) var(--stripe-stop-point-2));
  }

  .deleted-mountable-object {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--mountable-object-color),
          var(--mountable-object-color) var(--stripe-stop-point-1),
          var(--stripe-color-deleted) var(--stripe-stop-point-1),
          var(--stripe-color-deleted) var(--stripe-stop-point-2));
  }

  .mountpoint-object {
      background-color: var(--mountpoint-object-color);
  }

  .deprecated-mountpoint-object {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--mountpoint-object-color),
          var(--mountpoint-object-color) var(--stripe-stop-point-1),
          var(--stripe-color-deprecated) var(--stripe-stop-point-1),
          var(--stripe-color-deprecated) var(--stripe-stop-point-2));
  }

  .obsoleted-mountpoint-object {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--mountpoint-object-color),
          var(--mountpoint-object-color) var(--stripe-stop-point-1),
          var(--stripe-color-obsoleted) var(--stripe-stop-point-1),
          var(--stripe-color-obsoleted) var(--stripe-stop-point-2));
  }

  .deleted-mountpoint-object {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--mountpoint-object-color),
          var(--mountpoint-object-color) var(--stripe-stop-point-1),
          var(--stripe-color-deleted) var(--stripe-stop-point-1),
          var(--stripe-color-deleted) var(--stripe-stop-point-2));
  }
  </style>

  <!-- Local styles (that affect only data model tables) -->

  <style>
  /* center column 2 (Base Type) */
  .data-type-table th:nth-child(2),
  .data-type-table td:nth-child(2) {
      text-align: center;
  }

  /* center columns 3 (Write), 5 (Object Default), 6 (Version) */
  .data-model-table th:nth-child(3),
  .data-model-table td:nth-child(3),
  .data-model-table th:nth-child(5),
  .data-model-table td:nth-child(5),
  .data-model-table th:nth-child(6),
  .data-model-table td:nth-child(6)
  {
      text-align: center;
  }

  .data-model-table th,
  .data-model-table td {
      hyphenate-character: "";
  }

  /* word wrap/break column 1 (Name) */
  .data-model-table td:first-child {
      word-wrap: break-word;
      word-break: break-all;
      min-width: 27ch;
  }

  /* word wrap/break column 2 (Base Type) */
  .data-model-table td:nth-child(2) {
      word-wrap: break-word;
      word-break: break-all;
      min-width: 12ch;
  }

  /* word wrap/break column 3 (Write) */
  .data-model-table td:nth-child(3) {
      min-width: 1ch;
  }

  /* word wrap/break column 5 (Object Default) */
  .data-model-table td:nth-child(5) {
      word-wrap: break-word;
      word-break: break-all;
      min-width: 12ch;
  }

  /* word wrap/break column 6 (Version) */
  .data-model-table td:nth-child(6) {
      min-width: 6ch;
  }

  /* center column 1 (Abbreviation) */
  .profile-notation-table th:nth-child(1),
  .profile-notation-table td:nth-child(1) {
      text-align: center;
  }

  /* center column 2 (Requirement) */
  .profile-requirements-table th:nth-child(2),
  .profile-requirements-table td:nth-child(2) {
      text-align: center;
  }
  </style>

  <style>
  /* enabled if the --show option was specified (to avoid confusion between
     links and inserted text) */
  a:link, a:visited, a:hover, a:active {
      color: inherit;
  }
  </style>
</head>
<body>
<div id="main">
<table class="full-width">
<colgroup>
<col style="width: 3.0%;"></col>
<col style="width: 22.0%;"></col>
<col style="width: 50.0%;"></col>
<col style="width: 25.0%;"></col></colgroup>
<tbody>
<tr>
<td colspan="2"><a href="https://www.broadband-forum.org"><img width="100%" alt="Broadband Forum" src="https://www.broadband-forum.org/images/logo-broadband-forum.gif"></img></a></td>
<td class="centered" rowspan="1"><p></p>

<h1 id="tr-069-device2-root-data-model-definition-cwmp-changes" class="unnumbered unlisted">TR-069 Device:2 Root Data Model definition [CWMP] (changes)</h1>

<h1 id="tr-181-2-13-0-cwmpxml" class="unnumbered unlisted"><a href="./#tr-181-2-13-0-cwmp.xml">tr-181-2-13-0-cwmp.xml</a></h1></td>
<td rowspan="1"></td></tr>
<tr>
<td></td>
<td><h3 id="data-model-definition" class="unnumbered unlisted">DATA MODEL DEFINITION</h3></td></tr></tbody></table>

<h1 id="license">License</h1>

<p>Copyright (c) 2010-2019, Broadband Forum</p>

<p>The undersigned members have elected to grant the copyright to
their contributed material used in this software:<br/>    Copyright (c) 2017-2019 ARRIS Enterprises, LLC.</p>

<p>Redistribution and use in source and binary forms, with or
without modification, are permitted provided that the following
conditions are met:</p>

<ol>
<li>Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.</li>
<li>Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials
provided with the distribution.</li>
<li>Neither the name of the copyright holder nor the names of its
contributors may be used to endorse or promote products
derived from this software without specific prior written
permission.</li></ol>

<p>THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
CONTRIBUTORS &ldquo;AS IS&rdquo; AND ANY EXPRESS OR IMPLIED WARRANTIES,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</p>

<p>The above license is used as a license under copyright only.
Please reference the Forum IPR Policy for patent licensing terms
<a href="https://www.broadband-forum.org/ipr-policy">https://www.broadband-forum.org/ipr-policy</a>.</p>

<p>Any moral rights which are necessary to exercise under the above
license grant are also deemed granted under this license.</p>

<h1 id="data-types">Data Types</h1>

<p>The Parameters defined in this specification make use of a
limited subset of the default SOAP data types [<a href="#R.SOAP1.1">SOAP1.1</a>]. These data
types and the named data types used by this specification
are described below.</p>

<p>Note: A Parameter that is defined to be one of the named data
types is reported as such at the beginning of the Parameter’s
description via a reference back to the associated data type
definition (e.g. <em>[MACAddress]</em>). However, such parameters
still indicate their SOAP data types.</p>

<table class="full-width partial-border data-type-table">
<thead>
<tr>
<th>Data Type</th>
<th>Base Type</th>
<th>Description</th></tr></thead>
<tbody>
<tr>
<td><span id="T.base64">base64</span></td>
<td>-</td>
<td><p>Base64 encoded binary (no line-length limitation).</p>

<p>A minimum and maximum allowed length can be indicated using the form
<em>base64(Min:Max)</em>, where <em>Min</em> and <em>Max</em> are the minimum and maximum
length in characters before Base64 encoding. If either <em>Min</em> or
<em>Max</em> are missing, this indicates no limit, and if <em>Min</em> is missing
the colon can also be omitted, as in <em>base64(Max)</em>. Multiple
comma-separate ranges can be specified, in which case the length
MUST be in one of the ranges.</p></td></tr>
<tr>
<td><span id="T.boolean">boolean</span></td>
<td>-</td>
<td>Boolean, where the allowed values are <em>0</em> or <em>1</em> (or equivalently,
<em>true</em> or <em>false</em>).</td></tr>
<tr>
<td><span id="T.dateTime">dateTime</span></td>
<td>-</td>
<td>The subset of the ISO 8601 date-time format defined by the SOAP
<em>dateTime</em> type [<a href="#R.SOAP1.1">SOAP1.1</a>].</td></tr>
<tr>
<td><span id="T.int">int</span></td>
<td>-</td>
<td><p>Integer in the range <em>-2147483648</em> to <em>+2147483647</em>, inclusive.</p>

<p>For some <em>int</em> types, a value range is given using the form
<em>int(Min:Max)</em> or <em>int(Min:Max step Step)</em> where the <em>Min</em> and <em>Max</em>
values are inclusive. If either <em>Min</em> or <em>Max</em> are missing,
this indicates no limit. If <em>Step</em> is missing, this indicates a
step of <em>1</em>. Multiple comma-separated ranges can be specified,
in which case the value will be in one of the ranges.</p></td></tr>
<tr>
<td><span id="T.string">string</span></td>
<td>-</td>
<td>For strings, a minimum and maximum allowed length can be indicated
using the form <em>string(Min:Max)</em>, where <em>Min</em> and <em>Max</em> are the minimum
and maximum string length in characters. If either <em>Min</em> or <em>Max</em>
are missing, this indicates no limit, and if <em>Min</em> is missing the
colon can also be omitted, as in <em>string(Max)</em>. Multiple
comma-separated ranges can be specified, in which case the string
length will be in one of the ranges.</td></tr>
<tr>
<td><span id="T.unsignedInt">unsignedInt</span></td>
<td>-</td>
<td><p>Unsigned integer in the range <em>0</em> to <em>4294967295</em>, inclusive.</p>

<p>For some <em>unsignedInt</em> types, a value range is given using the form
<em>unsignedInt(Min:Max)</em> or <em>unsigned(Min:Max step Step)</em>, where the
<em>Min</em> and <em>Max</em> values are inclusive. If either <em>Min</em> or <em>Max</em> are
missing, this indicates no limit. If <em>Step</em> is missing,
this indicates a step of <em>1</em>. Multiple comma-separated ranges can be
specified, in which case the value will be in one of the ranges.</p></td></tr>
<tr>
<td><span id="T.unsignedLong">unsignedLong</span></td>
<td>-</td>
<td><p>Unsigned long integer in the range <em>0</em> to <em>18446744073709551615</em>,
inclusive.</p>

<p>For some <em>unsignedLong</em> types, a value range is given using the form
<em>unsignedLong(Min:Max)</em> or <em>unsignedLong(Min:Max step Step)</em>, where
the <em>Min</em> and <em>Max</em> values are inclusive. If either <em>Min</em> or <em>Max</em>
are missing, this indicates no limit. If <em>Step</em> is missing,
this indicates a step of <em>1</em>. Multiple comma-separated ranges can be
specified, in which case the value will be in one of the ranges.</p></td></tr>
<tr>
<td><span id="T.Alias">Alias</span></td>
<td><a href="#T.string">string</a>(:64)</td>
<td><p>A non-volatile handle used to reference this instance. Alias provides a
mechanism for an ACS to label this instance for future reference.</p>

<p>If the CPE supports the Alias-based Addressing feature as defined in
[<a href="#R.TR-069">Section 3.6.1/TR-069</a>] and described in [<a href="#R.TR-069">Appendix II/TR-069</a>],
the following mandatory constraints MUST be enforced:</p>

<ul>
<li>Its value MUST NOT be empty.</li>
<li>Its value MUST start with a letter.</li>
<li>If its value is not assigned by the ACS, it MUST start with a &ldquo;cpe-&rdquo;
prefix.</li>
<li>The CPE MUST NOT change the parameter value.</li></ul></td></tr>
<tr>
<td><span id="T.DiagnosticsState">DiagnosticsState</span></td>
<td><a href="#T.string">string</a></td>
<td><p>Indicates the availability of diagnostics data. Enumeration of:</p>

<p>Enumeration of:</p>

<ul>
<li><span id="D..None"><em>None</em></span> (READONLY)</li>
<li><span id="D..Requested"><em>Requested</em></span></li>
<li><span id="D..Canceled"><em>Canceled</em></span> (OPTIONAL)</li>
<li><span id="D..Complete"><em>Complete</em></span> (READONLY)</li>
<li><span id="D..Error"><em>Error</em></span> (READONLY, OPTIONAL)</li></ul>

<p>If the ACS sets the value of this parameter to <a href="#D..Requested"><em>Requested</em></a>, the
CPE MUST initiate the corresponding diagnostic test. When writing, the
only allowed values are <a href="#D..Requested"><em>Requested</em></a> and <a href="#D..Canceled"><em>Canceled</em></a>. To
ensure the use of the proper test parameters (the writable parameters in
this object), the test parameters MUST be set, and any errors or
inconsistencies in the test parameters MUST be detected, either prior to
or at the same time as (in the same SetParameterValues) setting this
parameter to <a href="#D..Requested"><em>Requested</em></a>.</p>

<p>When requested, the CPE SHOULD wait until after completion of the
communication session with the ACS before starting the diagnostic test.</p>

<p>When the test is completed, the value of this parameter MUST be either
<a href="#D..Complete"><em>Complete</em></a> (if the test completed successfully), or one of the
<em>Error</em> values listed above.</p>

<p>If the value of this parameter is anything other than <a href="#D..Complete"><em>Complete</em></a>,
the values of the results parameters for this test are indeterminate.</p>

<p>When the diagnostic initiated by the ACS is completed (successfully or
not), but not if it is canceled for any reason, the CPE MUST establish a
new connection to the ACS to allow the ACS to view the results,
indicating the Event code <em>8 DIAGNOSTICS COMPLETE</em> in the Inform
message.</p>

<p>After the diagnostic is complete, the value of all result parameters (all
read-only parameters in this object) MUST be retained by the CPE until
either this diagnostic is run again, or the CPE reboots. After a reboot,
if the CPE has not retained the result parameters from the most recent
test, it MUST set the value of this parameter to <a href="#D..None"><em>None</em></a>.</p>

<p>Modifying any of the writable parameters in this object except for this
one MUST result in the value of this parameter being set to
<a href="#D..None"><em>None</em></a>.</p>

<p>While the test is in progress, modifying any of the writable parameters
in this object except for this one MUST result in the test being
terminated and the value of this parameter being set to <a href="#D..None"><em>None</em></a>.</p>

<p>While the test is in progress, setting this parameter to
<a href="#D..Requested"><em>Requested</em></a> (and possibly modifying other writable parameters in
this object) MUST result in the test being terminated and then restarted
using the current values of the test parameters.</p>

<p>While the test is in progress, setting this parameter to
<a href="#D..Canceled"><em>Canceled</em></a> MUST result in the test being canceled and the value of
this parameter being set to <a href="#D..None"><em>None</em></a>. If the CPE does not support
the <a href="#D..Canceled"><em>Canceled</em></a> value, it MUST return a SPV error with &ldquo;Invalid
Parameter value&rdquo; (9007) to the ACS instead.</p></td></tr>
<tr>
<td><span id="T.IPAddress">IPAddress</span></td>
<td><a href="#T.string">string</a>(:45)</td>
<td><p>IP address, i.e. IPv4 address (or IPv4 subnet mask) or IPv6 address.</p>

<p>All IPv4 addresses and subnet masks MUST be represented as strings in
IPv4 dotted-decimal notation. Here are some examples of valid IPv4
address textual representations:</p>

<ul>
<li>216.52.29.100</li>
<li>192.168.1.254</li></ul>

<p>All IPv6 addresses MUST be represented using any of the 3 standard
textual representations defined in [<a href="#R.RFC4291">RFC4291</a>] Sections 2.2.1,
2.2.2 and 2.2.3. Both lower-case and upper-case letters can be used, but
use of lower-case letters is RECOMMENDED. Here are some examples of valid
IPv6 address textual representations:</p>

<ul>
<li>1080:0:0:800:ba98:3210:11aa:12dd</li>
<li>1080::800:ba98:3210:11aa:12dd</li>
<li>0:0:0:0:0:0:13.1.68.3</li></ul>

<p>IPv6 addresses MUST NOT include zone identifiers. Zone identifiers are
discussed in [<a href="#R.RFC4007">Section 6/RFC4007</a>].</p>

<p>Unspecified or inapplicable addresses (or IPv4 subnet masks) MUST be
represented as empty strings unless otherwise specified by the parameter
definition.</p></td></tr>
<tr>
<td><span id="T.IPv4Address">IPv4Address</span></td>
<td><a href="#T.IPAddress">IPAddress</a>(:45)</td>
<td><p>IPv4 address (or subnet mask).</p>

<p>Can be any IPv4 address that is permitted by the <em>IPAddress</em> data type.</p>

<p>Possible patterns:</p>

<ul>
<li><span id="D.."><em>&lt;Empty&gt;</em></span> (an empty string)</li>
<li><span id="D..250-520-40-9010-90-9.3250-520-40-9010-90-9"><code>((25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])</code></span></li></ul></td></tr>
<tr>
<td><span id="T.IPv6Address">IPv6Address</span></td>
<td><a href="#T.IPAddress">IPAddress</a>(:45)</td>
<td><p>IPv6 address.</p>

<p>Can be any IPv6 address that is permitted by the <em>IPAddress</em> data type.</p></td></tr>
<tr>
<td><span id="T.MACAddress">MACAddress</span></td>
<td><a href="#T.string">string</a>(:17)</td>
<td><p>All MAC addresses are represented as strings of 12 hexadecimal digits
(digits 0-9, letters A-F or a-f) displayed as six pairs of digits
separated by colons. Unspecified or inapplicable MAC addresses MUST be
represented as empty strings unless otherwise specified by the parameter
definition.</p>

<p>Possible patterns:</p>

<ul>
<li><span id="D.."><em>&lt;Empty&gt;</em></span> (an empty string)</li>
<li><span id="D..0-9A-Fa-f0-9A-Fa-f:50-9A-Fa-f0-9A-Fa-f"><code>([0-9A-Fa-f][0-9A-Fa-f]:){5}([0-9A-Fa-f][0-9A-Fa-f])</code></span></li></ul></td></tr>
<tr>
<td><span id="T.PSDBreakPointIndexAndLevel">PSDBreakPointIndexAndLevel</span></td>
<td><a href="#T.unsignedInt">unsignedInt</a>[2:2]</td>
<td><ol>
<li>the Power Spectral Density (PSD) breakpoint sub-carrier index in the range [0:8191] with Df = 4.3125 kHz frequency spacing, and</li>
<li>the value of the level of the PSD at this sub-carrier expressed in <em>0.1 dBm/Hz</em> with an offset of -200 dBm/Hz. The range of valid values for PSD is -30 to -200 dBm/Hz.
Both values are represented as unsignedInt.</li></ol></td></tr>
<tr>
<td><span id="T.StatsCounter32">StatsCounter32</span></td>
<td><a href="#T.unsignedInt">unsignedInt</a></td>
<td><p>A 32-bit statistics parameter, e.g. a byte counter.</p>

<p>This data type SHOULD NOT be used for statistics parameters whose values
might become greater than the maximum value that can be represented as an
<em>unsignedInt</em> (i.e. 0xffffffff, referred to below as <em>maxval</em>).
<em>StatsCounter64</em> SHOULD be used for such parameters.</p>

<p>The value <em>maxval</em> indicates that no data is available for this
parameter. In the unlikely event that the actual value of the statistic
is <em>maxval</em>, the CPE SHOULD return <em>maxval - 1</em>.</p>

<p>The actual value of the statistic might be greater than <em>maxval</em>. Such
values SHOULD wrap around through zero.</p>

<p>The term <em>packet</em> is to be interpreted as the transmission unit
appropriate to the protocol layer in question, e.g. an IP packet or an
Ethernet frame.</p></td></tr>
<tr>
<td><span id="T.StatsCounter64">StatsCounter64</span></td>
<td><a href="#T.unsignedLong">unsignedLong</a></td>
<td><p>A 64-bit statistics parameter, e.g. a byte counter.</p>

<p>This data type SHOULD be used for all statistics parameters whose values
might become greater than the maximum value that can be represented as an
<em>unsignedInt</em>.</p>

<p>The maximum value that can be represented as an <em>unsignedLong</em> (i.e.
0xffffffffffffffff) indicates that no data is available for this
parameter.</p>

<p>The term <em>packet</em> is to be interpreted as the transmission unit
appropriate to the protocol layer in question, e.g. an IP packet or an
Ethernet frame.</p></td></tr>
<tr>
<td><span id="T.UERComplex">UERComplex</span></td>
<td><a href="#T.int">int</a>[2:2]</td>
<td>Pair of 32-bit signed integers a(i),b(i) with each pair representing a complex component of the uncalibrated echo response (UER);

<ol>
<li>Real UER component, a(i)</li>
<li>Imaginary UER component, b(i)
for values of i starting at i=0. Both values are represented as signed integers.
The interpretation of the UER value is as defined in [<a href="#R.G.996.2">Clause A.2.2.1/G.996.2</a>].</li></ol></td></tr></tbody></table>

<h1 id="references">References</h1>

<table>
<tbody>
<tr>
<td><a href="https://standards.ieee.org/getieee802/download/802.11-2007.pdf">[<span id="R.802.11-2007">802.11-2007</span>]</a></td>
<td>IEEE Std 802.11-2007, <em>Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY)
Specifications</em>, IEEE, 2007.</td></tr>
<tr>
<td><a href="https://ieeexplore.ieee.org/document/7786995">[<span id="R.802.11-2016">802.11-2016</span>]</a></td>
<td>IEEE Std 802.11-2016, <em>Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY)
Specifications</em>, IEEE, December 2016.</td></tr>
<tr>
<td><a href="https://standards.ieee.org/getieee802/download/802.11a-1999.pdf">[<span id="R.802.11a-1999">802.11a-1999</span>]</a></td>
<td>IEEE Std 802.11a-1999, <em>High-speed Physical Layer in the 5 GHz band</em>, IEEE, 1999.</td></tr>
<tr>
<td><a href="https://www.ieee802.org/11/Reports/tgac_update.htm">[<span id="R.802.11ac-2013">802.11ac-2013</span>]</a></td>
<td>IEEE Std 802.11ac-2013, <em>Enhancements for Very High Throughput for Operation in Bands below 6
GHz</em>, IEEE, December 2013.</td></tr>
<tr>
<td><a href="https://standards.ieee.org/standard/802_11ax-2021.html">[<span id="R.802.11ax">802.11ax</span>]</a></td>
<td>IEEE Std 802.11ax, <em>Enhancements for High Efficiency WLAN</em>, IEEE, May 2021.</td></tr>
<tr>
<td><a href="https://standards.ieee.org/getieee802/download/802.11b-1999.pdf">[<span id="R.802.11b-1999">802.11b-1999</span>]</a></td>
<td>IEEE Std 802.11b-1999, <em>Higher Speed Physical Layer Extension in the 2.4 GHz band</em>, IEEE, 1999.</td></tr>
<tr>
<td><a href="https://standards.ieee.org/getieee802/download/802.11g-2003.pdf">[<span id="R.802.11g-2003">802.11g-2003</span>]</a></td>
<td>IEEE Std 802.11g-2003, <em>Further Higher Data Rate Extension in the 2.4 GHz Band</em>, IEEE, 2003.</td></tr>
<tr>
<td><a href="https://ieeexplore.ieee.org/xpl/freeabs_all.jsp?reload=true&amp;arnumber=5307322">[<span id="R.802.11n-2009">802.11n-2009</span>]</a></td>
<td>IEEE Std 802.11n-2009, <em>Amendment 5: Enhancements for Higher Throughput</em>, IEEE, 2009.</td></tr>
<tr>
<td><a href="https://standards.ieee.org/getieee802/download/802.1ad-2005.pdf">[<span id="R.802.1ad-2005">802.1ad-2005</span>]</a></td>
<td>IEEE Std 802.1ad-2005, <em>Virtual Bridged Local Area Networks Amendment 4: Provider Bridges</em>, IEEE, May 2005.</td></tr>
<tr>
<td><a href="https://standards.ieee.org/getieee802/download/802.1D-2004.pdf">[<span id="R.802.1D-2004">802.1D-2004</span>]</a></td>
<td>IEEE Std 802.1D-2004, <em>Media Access Control (MAC) Bridges</em>, IEEE, 2004.</td></tr>
<tr>
<td><a href="https://standards.ieee.org/getieee802/download/802.1Q-2005.pdf">[<span id="R.802.1Q-2005">802.1Q-2005</span>]</a></td>
<td>IEEE Std 802.1Q-2005, <em>Virtual Bridged Local Area Networks</em>, IEEE, 2006.</td></tr>
<tr>
<td><a href="https://standards.ieee.org/getieee802/download/802.1Q-2011.pdf">[<span id="R.802.1Q-2011">802.1Q-2011</span>]</a></td>
<td>IEEE Std 802.1Q-2011, <em>MAC Bridges and Virtual Bridge Local Area Networks</em>, IEEE, 2011.</td></tr>
<tr>
<td><a href="https://www.freebsd.org/cgi/man.cgi?query=bpf">[<span id="R.BPF">BPF</span>]</a></td>
<td>BPF, <em>Berkeley Packet Filter Syntax</em>, FreeBSD.org, October 2016.</td></tr>
<tr>
<td><a href="https://www.wi-fi.org/discover-wi-fi/specifications">[<span id="R.DataElements-v1.0">DataElements-v1.0</span>]</a></td>
<td>Data Elements Specification, <em>Data Elements Specification Version 1.0</em>, January 2019.</td></tr>
<tr>
<td>[<span id="R.DSLite">DSLite</span>]</td>
<td>RFC 6333, <em>Dual-Stack Lite Broadband Deployments Following IPv4 Exhaustion</em>, IETF, 2011.</td></tr>
<tr>
<td>[<span id="R.DSLite-options">DSLite-options</span>]</td>
<td>RFC 6334, <em>Dynamic Host Configuation Protocol for IPv6 (DHCPv6) Option for
Dual-Stack Lite</em>, IETF, 2011.</td></tr>
<tr>
<td><a href="https://docbox.etsi.org/M2M/Open/Latest_Drafts/00002ed121v116.pdf">[<span id="R.ETSIM2MFA">ETSIM2MFA</span>]</a></td>
<td>ETSI TS 102 690 v1.1.6, <em>Machine-to-Machine Communications (M2M Functional Architecture)</em>, ETSI, June 2012.</td></tr>
<tr>
<td><a href="https://docbox.etsi.org/M2M/Open/Latest_Drafts/00010ed121v116.pdf">[<span id="R.ETSIM2MInterfaces">ETSIM2MInterfaces</span>]</a></td>
<td>ETSI TS 102 921 v1.1.6, <em>M2M mIa, dIa and mId Interfaces</em>, ETSI, August 2012.</td></tr>
<tr>
<td><a href="https://www.itu.int/rec/T-REC-G.996.2">[<span id="R.G.996.2">G.996.2</span>]</a></td>
<td>G.996.2, <em>Single-ended line testing for digital subscriber lines (DSL)</em>, ITU-T.</td></tr>
<tr>
<td><a href="https://www.itu.int/rec/T-REC-G.9960-201006-P">[<span id="R.G.9960">G.9960</span>]</a></td>
<td>G.9960, <em>Unified high-speed wire-line based home networking transceivers -
System architecture and physical layer specification</em>, ITU-T.</td></tr>
<tr>
<td><a href="https://www.itu.int/rec/T-REC-G.9961-201006-P">[<span id="R.G.9961">G.9961</span>]</a></td>
<td>G.9961, <em>Unified high-speed wire-line based home networking transceivers - Data
link layer specification</em>, ITU-T.</td></tr>
<tr>
<td><a href="https://www.itu.int/rec/T-REC-G.9962-201308-P">[<span id="R.G.9964">G.9964</span>]</a></td>
<td>G.9964, <em>Unified high-speed wire-line based home networking transceivers - Power
spectral density specification</em>, ITU-T.</td></tr>
<tr>
<td><a href="https://www.iana.org/assignments/uri-schemes">[<span id="R.IANA-uri-schemes">IANA-uri-schemes</span>]</a></td>
<td>IANA Uniform Resource Identifier (URI) Schemes Registry, <em>Uniform Resource Identifier (URI) Schemes</em>, IANA.</td></tr>
<tr>
<td><a href="https://www.IEEE.org">[<span id="R.IEEE1905.1a">IEEE1905.1a</span>]</a></td>
<td>IEEE 1905.1a, <em>IEEE Std 1905.1a, Convergent Digital Home Network for Heterogeneous
Technologies Amendment 1: Support of new MAC/PHYs and enhancements,
IEEE, December 2014.</em>, IEEE, December 2014.</td></tr>
<tr>
<td><a href="https://standards.ieee.org/regauth/oui/tutorials/EUI64.html">[<span id="R.IEEE_EUI64">IEEE_EUI64</span>]</a></td>
<td>Guidelines for 64-bit Global Identifier (EUI-64) Registration Authority, <em>Guidelines for 64-bit Global Identifier (EUI-64) Registration Authority</em>, IEEE, March 1997.</td></tr>
<tr>
<td><a href="https://www.tmforum.org/ipdr/">[<span id="R.IPDR-SP">IPDR-SP</span>]</a></td>
<td>IPDR Streaming Protocol, <em>IPDR Streaming Protocol (IPDR/SP) Specification</em>, TM Forum.</td></tr>
<tr>
<td><a href="https://wiki.wireshark.org/Development/LibpcapFileFormat">[<span id="R.LIBPCAP">LIBPCAP</span>]</a></td>
<td>Libpcap, <em>Libpcap File Format</em>, Wireshark, 2015.</td></tr>
<tr>
<td><a href="https://www.wi-fi.org/discover-wi-fi/specifications">[<span id="R.MAPv1.0">MAPv1.0</span>]</a></td>
<td>Multi-AP Specification, <em>Multi-AP Specification Version 1.0</em>, June 2018.</td></tr>
<tr>
<td><a href="https://public.dhe.ibm.com/software/dw/webservices/ws-mqtt/mqtt-v3r1.html">[<span id="R.MQTT31">MQTT31</span>]</a></td>
<td>MQTT v3.1, <em>MQ Telemetry Transport (MQTT) V3.1 Protocol Specification</em>, 2010.</td></tr>
<tr>
<td><a href="https://docs.oasis-open.org/mqtt/mqtt/v5.0/mqtt-v5.0.html">[<span id="R.MQTT50">MQTT50</span>]</a></td>
<td>MQTT Version 5.0, <em>MQTT Version 5.0, Candidate OASIS Standard 02.</em>, OASIS Message Queuing Telemetry Transport (MQTT) TC, February 2019.</td></tr>
<tr>
<td><a href="https://standards.ieee.org/faqs/regauth">[<span id="R.OUI">OUI</span>]</a></td>
<td>Organizationally Unique Identifiers (OUIs).</td></tr>
<tr>
<td><a href="https://ieeexplore.ieee.org/xpl/mostRecentIssue.jsp?punumber=4694974">[<span id="R.POSIXBase">POSIXBase</span>]</a></td>
<td>ISO/IEC/IEEE 9945, <em>Information technology - Portable Operating System Interface (POSIX)
Base Specifications, Issue 7</em>, ISO/IEC/IEEE, September 2009.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc2131">[<span id="R.RFC2131">RFC2131</span>]</a></td>
<td>RFC 2131, <em>Dynamic Host Configuration Protocol</em>, IETF.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc2616">[<span id="R.RFC2616">RFC2616</span>]</a></td>
<td>RFC 2616, <em>Hypertext Transfer Protocol - HTTP/1.1</em>, IETF, 1999.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc2697">[<span id="R.RFC2697">RFC2697</span>]</a></td>
<td>RFC 2697, <em>A Single Rate Three Color Marker</em>, IETF.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc2698">[<span id="R.RFC2698">RFC2698</span>]</a></td>
<td>RFC 2698, <em>A Two Rate Three Color Marker</em>, IETF.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc2865">[<span id="R.RFC2865">RFC2865</span>]</a></td>
<td>RFC 2865, <em>Remote Authentication Dial In User Service (RADIUS)</em>, IETF, 2000.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc2898">[<span id="R.RFC2898">RFC2898</span>]</a></td>
<td>RFC 2898, <em>PKCS #5: Password-Based Cryptography Specification Version 2.0</em>, IETF.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc3315">[<span id="R.RFC3315">RFC3315</span>]</a></td>
<td>RFC 3315, <em>Dynamic Host Configuration Protocol for IPv6 (DHCPv6)</em>, IETF, 2003.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc3633">[<span id="R.RFC3633">RFC3633</span>]</a></td>
<td>RFC 3633, <em>IPv6 Prefix Options for Dynamic Host Configuration Protocol (DHCP)
version 6</em>, IETF, 2003.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc3986">[<span id="R.RFC3986">RFC3986</span>]</a></td>
<td>RFC 3986, <em>Uniform Resource Identifier (URI): Generic Syntax</em>, IETF.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc4007">[<span id="R.RFC4007">RFC4007</span>]</a></td>
<td>RFC 4007, <em>IPv6 Scoped Address Architecture</em>, IETF.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc4122">[<span id="R.RFC4122">RFC4122</span>]</a></td>
<td>RFC 4122, <em>A Universally Unique IDentifier (UUID) URN Namespace</em>, IETF, 2005.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc4193">[<span id="R.RFC4193">RFC4193</span>]</a></td>
<td>RFC 4193, <em>Unique Local IPv6 Unicast Addresses</em>, IETF, 2005.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc4291">[<span id="R.RFC4291">RFC4291</span>]</a></td>
<td>RFC 4291, <em>IP Version 6 Addressing Architecture</em>, IETF, 2006.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc4292">[<span id="R.RFC4292">RFC4292</span>]</a></td>
<td>RFC 4292, <em>IP Forwarding Table MIB</em>, IETF, 2006.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc4293">[<span id="R.RFC4293">RFC4293</span>]</a></td>
<td>RFC 4293, <em>Management Information Base for the Internet Protocol (IP)</em>, IETF, 2006.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc4301">[<span id="R.RFC4301">RFC4301</span>]</a></td>
<td>RFC 4301, <em>Security Architecture for the Internet Protocol</em>, IETF, December 2005.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc4302">[<span id="R.RFC4302">RFC4302</span>]</a></td>
<td>RFC 4302, <em>IP Authentication Header</em>, IETF, December 2005.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc4303">[<span id="R.RFC4303">RFC4303</span>]</a></td>
<td>RFC 4303, <em>IP Encapsulating Security Payload (ESP)</em>, IETF, December 2005.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc4632">[<span id="R.RFC4632">RFC4632</span>]</a></td>
<td>RFC 4632, <em>Classless Inter-domain Routing (CIDR): The Internet Address Assignment
and Aggregation Plan</em>, IETF, 2006.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc4861">[<span id="R.RFC4861">RFC4861</span>]</a></td>
<td>RFC 4861, <em>Neighbor Discovery for IP version 6 (IPv6)</em>, IETF, 2007.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc4862">[<span id="R.RFC4862">RFC4862</span>]</a></td>
<td>RFC 4862, <em>IPv6 Stateless Address Autoconfiguration</em>, IETF, 2007.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc5139">[<span id="R.RFC5139">RFC5139</span>]</a></td>
<td>RFC 5139, <em>Revised Civic Location Format For Presence Information Data Format
Location Object (PIDF-LO)</em>, IETF, February 2008.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc5491">[<span id="R.RFC5491">RFC5491</span>]</a></td>
<td>RFC 5491, <em>GEOPRIV Presence Information Data Format Location Object (PIDF-LO)
Usage Clarification, Considerations, and Recommendations</em>, IETF, March 2009.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc5625">[<span id="R.RFC5625">RFC5625</span>]</a></td>
<td>RFC 5625, <em>DNS Proxy Implementation Guidelines</em>, IETF, 2009.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc5969">[<span id="R.RFC5969">RFC5969</span>]</a></td>
<td>RFC 5969, <em>IPv6 Rapid Deployment on IPv4 Infrastructures (6rd) - Protocol
Specification</em>, IETF, 2010.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc5996">[<span id="R.RFC5996">RFC5996</span>]</a></td>
<td>RFC 5996, <em>Internet Key Exchange Protocol Version 2 (IKEv2)</em>, IETF, September 2010.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc6120">[<span id="R.RFC6120">RFC6120</span>]</a></td>
<td>RFC 6120, <em>Extensible Messaging and Presence Protocol (XMPP) : Core</em>, IETF, 2011.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc6887">[<span id="R.RFC6887">RFC6887</span>]</a></td>
<td>RFC 6887, <em>Port Control Protocol (PCP)</em>, IETF, 2013.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc7159">[<span id="R.RFC7159">RFC7159</span>]</a></td>
<td>RFC7159, <em>The JavaScript Object Notation (JSON) Data Interchange Format</em>, IETF, March 2014.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc7230">[<span id="R.RFC7230">RFC7230</span>]</a></td>
<td>RFC 7230, <em>Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing</em>, IETF, June 2014.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc7252">[<span id="R.RFC7252">RFC7252</span>]</a></td>
<td>RFC 7252, <em>The Constrained Application Protocol (CoAP)</em>, IETF, June 2014.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc7291">[<span id="R.RFC7291">RFC7291</span>]</a></td>
<td>RFC 7291, <em>DHCP Options for the Port Control Protocol (PCP)</em>, IETF, 2014.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc7597">[<span id="R.RFC7597">RFC7597</span>]</a></td>
<td>RFC 7597, <em>Mapping of Address and Port with Encapsulation (MAP)</em>, IETF, July 2015.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc7598">[<span id="R.RFC7598">RFC7598</span>]</a></td>
<td>RFC 7598, <em>DHCPv6 Options for configuration of Softwire Address and Port Mapped
Clients</em>, IETF, July 2015.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc7599">[<span id="R.RFC7599">RFC7599</span>]</a></td>
<td>RFC 7599, <em>Mapping of Address and Port using Translation (MAP-T)</em>, IETF, July 2015.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc8141">[<span id="R.RFC8141">RFC8141</span>]</a></td>
<td>RFC 8141, <em>Uniform Resource Names (URNs)</em>, IETF, April 2017.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc862">[<span id="R.RFC862">RFC862</span>]</a></td>
<td>RFC 862, <em>Echo Protocol</em>, IETF, 1983.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc958">[<span id="R.RFC959">RFC959</span>]</a></td>
<td>RFC 959, <em>File Transfer Protocol</em>, IETF, 1985.</td></tr>
<tr>
<td><a href="https://www.w3.org/TR/2000/NOTE-SOAP-20000508">[<span id="R.SOAP1.1">SOAP1.1</span>]</a></td>
<td>Simple Object Access Protocol (SOAP) 1.1, W3C.</td></tr>
<tr>
<td><a href="https://www.broadband-forum.org/download/TR-069.pdf">[<span id="R.TR-069">TR-069</span>]</a></td>
<td>TR-069 Amendment 6, <em>CPE WAN Management Protocol</em>, Broadband Forum, April 2018.</td></tr>
<tr>
<td><a href="https://www.broadband-forum.org/download/TR-159.pdf">[<span id="R.TR-159">TR-159</span>]</a></td>
<td>TR-159, <em>Management Framework for xDSL Bonding</em>, Broadband Forum, December 2008.</td></tr>
<tr>
<td><a href="https://www.broadband-forum.org/download/TR-181_Issue-2.pdf">[<span id="R.TR-181i2">TR-181i2</span>]</a></td>
<td>TR-181 Issue 2 Amendment 15, <em>Device Data Model</em>, Broadband Forum, January 2022.</td></tr>
<tr>
<td><a href="https://www.broadband-forum.org/download/TR-232.pdf">[<span id="R.TR-232">TR-232</span>]</a></td>
<td>TR-232, <em>Bulk Data Collection</em>, Broadband Forum, May 2012.</td></tr>
<tr>
<td><a href="https://www.broadband-forum.org/download/TR-262.pdf">[<span id="R.TR-262">TR-262</span>]</a></td>
<td>TR-262, <em>Femto Component Objects</em>, Broadband Forum, November 2011.</td></tr>
<tr>
<td><a href="https://www.usb.org/documents">[<span id="R.USB1.0">USB1.0</span>]</a></td>
<td>USB 1.0, <em>USB 1.0 Specification</em>, USB-IF, January 1996.</td></tr>
<tr>
<td><a href="https://www.usb.org/documents">[<span id="R.USB2.0">USB2.0</span>]</a></td>
<td>USB 2.0, <em>USB 2.0 Specification</em>, USB-IF, April 2000.</td></tr>
<tr>
<td><a href="https://www.usb.org/documents">[<span id="R.USB3.0">USB3.0</span>]</a></td>
<td>USB 3.0, <em>USB 3.0 Specification</em>, USB-IF, November 2008.</td></tr>
<tr>
<td><a href="https://csa-iot.org/all-solutions/zigbee">[<span id="R.ZigBee2007">ZigBee2007</span>]</a></td>
<td>ZigBee 2007 Specification, <em>ZigBee 2007 Specification</em>, ZigBee Alliance, October 2007.</td></tr></tbody></table>

<h1 id="legend">Legend</h1>

<table class="middle-width partial-border">
<tbody>
<tr class="object">
<td>Object definition.</td></tr>
<tr class="parameter">
<td>Parameter definition.</td></tr></tbody></table>

<h1 id="device213-data-model">Device:2.13 Data Model</h1>

<p>For a given implementation of this data model, the Agent MUST
indicate support for the highest version number of any object
or parameter that it supports. For example, even if the Agent
supports only a single parameter that was introduced in version
1.4, then it will indicate support for version 1.4. The version
number associated with each object and parameter is shown in
the <strong>Version</strong> column.</p>

<div class="diffs"><p><strong>Changes in 2.13:</strong></p>

<ul>
<li>Changed name = <em>Device:2.12</em> ⇒ <em>Device:2.13</em></li></ul></div>

<table class="full-width partial-border data-model-table">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Write</th>
<th>Description</th>
<th>Object Default</th>
<th>Version</th></tr></thead>
<tbody>
<tr class="object">
<td><span id="D.Device:2.Device.">Device.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>The top-level object for a Device.

<div class="diffs"><p><strong>Changes in 2.13:</strong></p>

<ul>
<li>Added <a href="#D.Device:2.Device.PacketCaptureDiagnostics."><em>PacketCaptureDiagnostics.</em></a> object</li></ul></div></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.DeviceInfo.">Device.DeviceInfo.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object contains general device information.</td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.ManagementServer.">Device.ManagementServer.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object contains parameters relating to the CPE’s association with an ACS.</td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.ManagementServer.PeriodicInformTime">PeriodicInformTime</span></td>
<td>dateTime</td>
<td>W</td>
<td>An absolute time reference in UTC to determine when the CPE will initiate the periodic Inform method calls. Each Inform call MUST occur at this reference time plus or minus an integer multiple of the <a href="#D.Device:2.Device.ManagementServer.PeriodicInformInterval"><em>PeriodicInformInterval</em></a>. <em>PeriodicInformTime</em> is used only to set the <em>phase</em> of the periodic Informs. The actual value of <em>PeriodicInformTime</em> can be arbitrarily far into the past or future. For example, if <a href="#D.Device:2.Device.ManagementServer.PeriodicInformInterval"><em>PeriodicInformInterval</em></a> is 86400 (a day) and if <em>PeriodicInformTime</em> is set to UTC midnight on some day (in the past, present, or future) then periodic Informs will occur every day at UTC midnight. These MUST begin on the very next midnight, even if <em>PeriodicInformTime</em> refers to a day in the future. The Unknown Time value defined in <strong>{{bibref: non-existent <span class="inserted">TR-106</span>}}</strong> indicates that no particular time reference is specified. That is, the CPE MAY locally choose the time reference, and needs only to adhere to the specified <a href="#D.Device:2.Device.ManagementServer.PeriodicInformInterval"><em>PeriodicInformInterval</em></a>. If absolute time is not available to the CPE, its periodic Inform behavior MUST be the same as if the <em>PeriodicInformTime</em> parameter was set to the Unknown Time value.</td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.ManagementServer.CWMPRetryMinimumWaitInterval">CWMPRetryMinimumWaitInterval</span></td>
<td>unsignedInt(1:65535)</td>
<td>W</td>
<td>Configures the first session retry wait interval, in <em>seconds</em>, as specified in <strong>{{bibref: non-existent <span class="inserted">TR-069</span>}}</strong>. A value of 5 corresponds to the default behavior that is described in <strong>{{bibref: non-existent <span class="inserted">TR-069</span>}}</strong>. The device MUST use a random value between <em>CWMPRetryMinimumWaitInterval</em> and (<em>CWMPRetryMinimumWaitInterval</em> * <a href="#D.Device:2.Device.ManagementServer.CWMPRetryIntervalMultiplier"><em>CWMPRetryIntervalMultiplier</em></a> / 1000) as the first retry wait interval. Other values in the retry pattern MUST be calculated using this value as a starting point.</td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.ManagementServer.CWMPRetryIntervalMultiplier">CWMPRetryIntervalMultiplier</span></td>
<td>unsignedInt(1000:65535)</td>
<td>W</td>
<td>Configures the retry interval multiplier as specified in <strong>{{bibref: non-existent <span class="inserted">TR-069</span>}}</strong>. This value is expressed in units of 0.001. Hence the values of the multiplier range between 1.000 and 65.535. A value of 2000 corresponds to the default behavior that is described in <strong>{{bibref: non-existent <span class="inserted">TR-069</span>}}</strong>. The device MUST use a random value between <a href="#D.Device:2.Device.ManagementServer.CWMPRetryMinimumWaitInterval"><em>CWMPRetryMinimumWaitInterval</em></a> and (<a href="#D.Device:2.Device.ManagementServer.CWMPRetryMinimumWaitInterval"><em>CWMPRetryMinimumWaitInterval</em></a> * <em>CWMPRetryIntervalMultiplier</em> / 1000) as the first retry wait interval. Other values in the retry pattern MUST be calculated using this value as a starting point.</td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.ManagementServer.UDPConnectionRequestAddress">UDPConnectionRequestAddress</span></td>
<td>string(:256)</td>
<td>R</td>
<td><p>Address and port to which an ACS MAY send a UDP Connection Request to the CPE (see <strong>{{bibref: non-existent <span class="inserted">TR-069</span>}}</strong>). This parameter is represented in the form of an Authority element as defined in [<a href="#R.RFC3986">RFC3986</a>]. The value MUST be in one of the following two forms:</p>

<blockquote>host:port</blockquote>

<blockquote>host * When <a href="#D.Device:2.Device.ManagementServer.STUNEnable"><em>STUNEnable</em></a> is <em>true</em>, the <em>host</em> and <em>port</em> portions of this parameter MUST represent the public address and port corresponding to the NAT binding through which the ACS can send UDP Connection Request messages (once this information is learned by the CPE through the use of STUN). * When <a href="#D.Device:2.Device.ManagementServer.STUNEnable"><em>STUNEnable</em></a> is <em>false</em>, the <em>host</em> and <em>port</em> portions of the URL MUST represent the local IP address and port on which the CPE is listening for UDP Connection Request messages. The second form of this parameter MAY be used only if the port value is equal to <em>80</em>. Note: If the <em>host</em> portion of the URL is a literal IPv6 address then it MUST be enclosed in square brackets (see [<a href="#R.RFC3986">Section 3.2.2/RFC3986</a>]).</blockquote></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.ManagementServer.AliasBasedAddressing">AliasBasedAddressing</span></td>
<td>boolean</td>
<td>R</td>
<td><p>Indicates whether or not the Alias-Based Addressing Mechanism is supported. A <em>true</em> value indicates that the CPE supports the Alias-Based Addressing Mechanism, as defined in <strong>{{bibref: non-existent <span class="inserted">TR-069</span>}}</strong> and described in <strong>{{bibref: non-existent <span class="inserted">TR-069</span>}}</strong>.</p>

<p>This parameter MUST always be included in Inform messages.</p></td>
<td>-</td>
<td>2.3</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.ManagementServer.InstanceMode">InstanceMode</span></td>
<td>string</td>
<td>W</td>
<td><p>Instance identification mode as defined in <strong>{{bibref: non-existent <span class="inserted">TR-069</span>}}</strong>. When <a href="#D.Device:2.Device.ManagementServer.AliasBasedAddressing"><em>AliasBasedAddressing</em></a> is <em>true</em>, <em>InstanceMode</em> is used by the ACS to control whether the CPE will use Instance Numbers or Instance Aliases in returned Path Names. Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.ManagementServer.InstanceMode.InstanceNumber"><em>InstanceNumber</em></span></li>
<li><span id="D.Device:2.Device.ManagementServer.InstanceMode.InstanceAlias"><em>InstanceAlias</em></span>
This parameter is REQUIRED for any CPE supporting Alias-Based Addressing.</li></ul>

<p>The factory default value MUST be <em>InstanceNumber</em>.</p></td>
<td>-</td>
<td>2.3</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.ManagementServer.AutoCreateInstances">AutoCreateInstances</span></td>
<td>boolean</td>
<td>W</td>
<td><p>Enable or disable the Auto-Create Instance Mechanism. When <a href="#D.Device:2.Device.ManagementServer.AliasBasedAddressing"><em>AliasBasedAddressing</em></a> is <em>true</em>, <em>AutoCreateInstances</em> indicates whether or not the CPE will automatically create instances while processing a SetParameterValues RPC (as defined in <strong>{{bibref: non-existent <span class="inserted">TR-069</span>}}</strong>). *A <em>true</em> value indicates that the CPE will perform auto-creation of instances when the Alias-Based Addressing Mechanism is used in SetParameterValues RPC. *A <em>false</em> value indicates that the CPE will not create new object instances. Instead, it will reject the setting of parameters in unrecognized instances and respond with a fault code. This parameter is REQUIRED for any CPE supporting Alias-Based Addressing.</p>

<p>The factory default value MUST be <em>false</em>.</p></td>
<td>-</td>
<td>2.3</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.ManagementServer.SupportedConnReqMethods">SupportedConnReqMethods</span></td>
<td>string[]</td>
<td>R</td>
<td><p>Comma-separated list of strings. The connection request methods supported by this <a href="#D.Device:2.Device.ManagementServer."><em>ManagementServer</em></a>. Each list item is an enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.ManagementServer.SupportedConnReqMethods.HTTP"><em>HTTP</em></span> (The connection request method as specified in [<a href="#R.TR-069">Section 3.2.2 ACS Connection Initiation/TR-069</a>], <strong>REQUIRED</strong>)</li>
<li><span id="D.Device:2.Device.ManagementServer.SupportedConnReqMethods.STUN"><em>STUN</em></span> (The connection request method as specified in [<a href="#R.TR-069">Annex G Connection Request via NAT Gateway/TR-069</a>], OPTIONAL)</li>
<li><span id="D.Device:2.Device.ManagementServer.SupportedConnReqMethods.XMPP"><em>XMPP</em></span> (The connection request method as specified in <strong>{{bibref: non-existent <span class="inserted">TR-069</span>}}</strong>, OPTIONAL)</li></ul></td>
<td>-</td>
<td>2.7</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.ManagementServer.HTTPCompressionSupported">HTTPCompressionSupported</span></td>
<td>string[]</td>
<td>R</td>
<td><p>Comma-separated list of strings. Indicates the HTTP Compression mechanism(s) supported by this CPE. Requirements for the use of HTTP Compression for CWMP can be found in <strong>{{bibref: non-existent <span class="inserted">TR-069</span>}}</strong>. Each list item is an enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.ManagementServer.HTTPCompressionSupported.GZIP"><em>GZIP</em></span> (As defined in [<a href="#R.RFC2616">Section 3.5/RFC2616</a>])</li>
<li><span id="D.Device:2.Device.ManagementServer.HTTPCompressionSupported.Compress"><em>Compress</em></span> (As defined in [<a href="#R.RFC2616">Section 3.5/RFC2616</a>])</li>
<li><span id="D.Device:2.Device.ManagementServer.HTTPCompressionSupported.Deflate"><em>Deflate</em></span> (As defined in [<a href="#R.RFC2616">Section 3.5/RFC2616</a>])
Vendors can extend the enumerated values with vendor specific extensions, in which case the rules outlined in <strong>{{bibref: non-existent <span class="inserted">TR-106</span>}}</strong> MUST be adhered to.</li></ul></td>
<td>-</td>
<td>2.7</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.ManagementServer.LightweightNotificationProtocolsSupported">LightweightNotificationProtocolsSupported</span></td>
<td>string[]</td>
<td>R</td>
<td><p>Comma-separated list of strings. Indicates the Lightweight Notification Protocol(s) supported by this CPE. Each list item is an enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.ManagementServer.LightweightNotificationProtocolsSupported.UDP"><em>UDP</em></span> (As defined in <strong>{{bibref: non-existent <span class="inserted">TR-069</span>}}</strong>)
Vendors can extend the enumerated values with vendor specific extensions, in which case the rules outlined in <strong>{{bibref: non-existent <span class="inserted">TR-106</span>}}</strong> MUST be adhered to.</li></ul></td>
<td>-</td>
<td>2.7</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.ManagementServer.LightweightNotificationTriggerTime">LightweightNotificationTriggerTime</span></td>
<td>dateTime</td>
<td>W</td>
<td>An absolute time reference in UTC to determine when the CPE will initiate the Lightweight Notification (in the case that there are pending Passive Lightweight Notifications that need to be delivered). Each Passive Lightweight Notification (that is waiting for the Lightweight Notification Trigger mechanism for delivery) MUST occur at this reference time plus or minus an integer multiple of the <a href="#D.Device:2.Device.ManagementServer.LightweightNotificationTriggerInterval"><em>LightweightNotificationTriggerInterval</em></a>. <em>LightweightNotificationTriggerTime</em> is used only to set the <em>phase</em> of the Passive Lightweight Notification. The actual value of <em>LightweightNotificationTriggerTime</em> can be arbitrarily far into the past or future. For example, if <a href="#D.Device:2.Device.ManagementServer.LightweightNotificationTriggerInterval"><em>LightweightNotificationTriggerInterval</em></a> is 86400 (a day) and if <em>LightweightNotificationTriggerTime</em> is set to UTC midnight on some day (in the past, present, or future) then Lightweight Notifications for pending Passive Lightweight Notifications will occur every day at UTC midnight. These MUST begin on the very next midnight, even if <em>LightweightNotificationTriggerTime</em> refers to a day in the future. The Unknown Time value defined in <strong>{{bibref: non-existent <span class="inserted">TR-106</span>}}</strong> indicates that no particular time reference is specified. That is, the CPE MAY locally choose the time reference, and needs only to adhere to the specified <a href="#D.Device:2.Device.ManagementServer.LightweightNotificationTriggerInterval"><em>LightweightNotificationTriggerInterval</em></a>. If absolute time is not available to the CPE, its Lightweight Notifications behavior MUST be the same as if the <em>LightweightNotificationTriggerTime</em> parameter was set to the Unknown Time value.</td>
<td>-</td>
<td>2.12</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.ManagementServer.InstanceWildcardsSupported">InstanceWildcardsSupported</span></td>
<td>boolean</td>
<td>R</td>
<td>Indicates whether or not instance wildcards are supported. A <em>true</em> value indicates that the CPE supports instance wildcards for GPV, GPN and GPA RPC calls, as defined in <span class="removed">[TR-069a6].</span><span class="inserted">[TR-069].</span></td>
<td>-</td>
<td>2.12</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.ManagementServer.ManageableDevice.">Device.ManagementServer.ManageableDevice.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>Each entry in this table corresponds to a distinct LAN Device that supports Device-Gateway Association according to <strong>{{bibref: non-existent <span class="inserted">TR-069</span>}}</strong> as indicated by the presence of the DHCP option specified in that Annex.</p>

<p>At most one entry in this table can exist with a given value for <strong>{{param: reference to deprecated parameter Device.ManagementServer.ManageableDevice.{i}.Alias}}</strong>, or with the same values for all of <a href="#D.Device:2.Device.ManagementServer.ManageableDevice.ManufacturerOUI"><em>ManufacturerOUI</em></a>, <a href="#D.Device:2.Device.ManagementServer.ManageableDevice.SerialNumber"><em>SerialNumber</em></a> and <a href="#D.Device:2.Device.ManagementServer.ManageableDevice.ProductClass"><em>ProductClass</em></a>.</p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.ManagementServer.AutonomousTransferCompletePolicy.">Device.ManagementServer.AutonomousTransferCompletePolicy.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object allows configuration of CPE policy for notification of AUTONOMOUS TRANSFER COMPLETE events, defined in <strong>{{bibref: non-existent <span class="inserted">TR-069</span>}}</strong>. The CPE policy determines the conditions under which the CPE notifies the ACS of the completion of file transfers that were not specifically requested by the ACS.</td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.ManagementServer.DUStateChangeComplPolicy.">Device.ManagementServer.DUStateChangeComplPolicy.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object allows configuration of CPE policy for notification of &ldquo;12 AUTONOMOUS DU STATE CHANGE COMPLETE&rdquo; events defined in <strong>{{bibref: non-existent <span class="inserted">TR-069</span>}}</strong>. The CPE policy determines the conditions under which the CPE notifies the ACS of the completion of Deployment Unit state changes that were not specifically requested via CWMP.</td>
<td>-</td>
<td>2.1</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.ManagementServer.EmbeddedDevice.">Device.ManagementServer.EmbeddedDevice.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>Each entry in this table represents a distinct Proxied Device that utilizes the Embedded Object Mechanism <strong>{{bibref: non-existent <span class="inserted">TR-069</span>}}</strong> for proxying devices.</p>

<p>At most one entry in this table can exist with the same values for both <a href="#D.Device:2.Device.ManagementServer.EmbeddedDevice.ControllerID"><em>ControllerID</em></a> and <a href="#D.Device:2.Device.ManagementServer.EmbeddedDevice.ProxiedDeviceID"><em>ProxiedDeviceID</em></a>.</p></td>
<td>-</td>
<td>2.3</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.ManagementServer.EmbeddedDevice.Reference">Reference</span></td>
<td>string</td>
<td>R</td>
<td>The value MUST be the path name of a table row. If the referenced object is deleted, this <a href="#D.Device:2.Device.ManagementServer.EmbeddedDevice."><em>EmbeddedDevice</em></a> instance MUST also be removed. Represents the instance of a multi-instanced object that is directly controlled by, and has come into existence because of, this Proxied Device that utilizes the Embedded Object Mechanism <strong>{{bibref: non-existent <span class="inserted">TR-069</span>}}</strong>.</td>
<td>-</td>
<td>2.3</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.ManagementServer.EmbeddedDevice.ProxyProtocol">ProxyProtocol</span></td>
<td>string</td>
<td>R</td>
<td><p>The protocol being used to communicate between the CPE Proxier and this Proxied Device. Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.ManagementServer.EmbeddedDevice.ProxyProtocol.Z-Wave"><em>Z-Wave</em></span> (see [<a href="#R.Z-Wave">Z-Wave</a>])</li>
<li><span id="D.Device:2.Device.ManagementServer.EmbeddedDevice.ProxyProtocol.ZigBee"><em>ZigBee</em></span> (see [<a href="#R.ZigBee">ZigBee</a>])</li>
<li><span id="D.Device:2.Device.ManagementServer.EmbeddedDevice.ProxyProtocol.UPnP-DM"><em>UPnP-DM</em></span> (see [<a href="#R.UPnP-DM:1">UPnP-DM:1</a>])</li>
<li><span id="D.Device:2.Device.ManagementServer.EmbeddedDevice.ProxyProtocol.ETSI-M2M"><em>ETSI-M2M</em></span> (see [<a href="#R.ETSIM2MFA">ETSIM2MFA</a>])
Vendors can extend the enumerated values with vendor specific extensions, in which case the rules outlined in <strong>{{bibref: non-existent <span class="inserted">TR-106</span>}}</strong> MUST be adhered to.</li></ul></td>
<td>-</td>
<td>2.3</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.ManagementServer.EmbeddedDevice.DiscoveryProtocol">DiscoveryProtocol</span></td>
<td>string[]</td>
<td>R</td>
<td><p>Comma-separated list of strings, that represents the discovery protocol(s) for this proxied device. Each list item is an enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.ManagementServer.EmbeddedDevice.DiscoveryProtocol.Z-Wave"><em>Z-Wave</em></span> (see [<a href="#R.Z-Wave">Z-Wave</a>])</li>
<li><span id="D.Device:2.Device.ManagementServer.EmbeddedDevice.DiscoveryProtocol.ZigBee"><em>ZigBee</em></span> (see [<a href="#R.ZigBee">ZigBee</a>])</li>
<li><span id="D.Device:2.Device.ManagementServer.EmbeddedDevice.DiscoveryProtocol.UPnP"><em>UPnP</em></span> (see [<a href="#R.UPnP-DAv1">UPnP-DAv1</a>])</li>
<li><span id="D.Device:2.Device.ManagementServer.EmbeddedDevice.DiscoveryProtocol.ETSI-M2M"><em>ETSI-M2M</em></span> (see [<a href="#R.ETSIM2MFA">ETSIM2MFA</a>])
Vendors can extend the enumerated values with vendor specific extensions, in which case the rules outlined in <strong>{{bibref: non-existent <span class="inserted">TR-106</span>}}</strong> MUST be adhered to.</li></ul></td>
<td>-</td>
<td>2.6</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.ManagementServer.EmbeddedDevice.LastSyncTime">LastSyncTime</span></td>
<td>dateTime</td>
<td>R</td>
<td>The last time that the CPE Proxier synchronized the state of the Proxied Device. This parameter MUST be updated when a proxy command is executed successfully on the Proxied Device. The Unknown Time value, as defined in <strong>{{bibref: non-existent <span class="inserted">TR-106</span>}}</strong>, indicates that the Proxied Device’s state has not been synchronized since the CPE Proxier was last rebooted.</td>
<td>-</td>
<td>2.3</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.ManagementServer.VirtualDevice.">Device.ManagementServer.VirtualDevice.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>Each entry in this table represents a distinct Proxied Device that utilizes the Virtual CWMP Device Mechanism <strong>{{bibref: non-existent <span class="inserted">TR-069</span>}}</strong> for proxying devices.</p>

<p>At most one entry in this table can exist with the same values for all of <a href="#D.Device:2.Device.ManagementServer.VirtualDevice.ManufacturerOUI"><em>ManufacturerOUI</em></a>, <a href="#D.Device:2.Device.ManagementServer.VirtualDevice.ProductClass"><em>ProductClass</em></a> and <a href="#D.Device:2.Device.ManagementServer.VirtualDevice.SerialNumber"><em>SerialNumber</em></a>.</p></td>
<td>-</td>
<td>2.3</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.ManagementServer.VirtualDevice.ProxyProtocol">ProxyProtocol</span></td>
<td>string</td>
<td>R</td>
<td><p>The protocol being used to communicate between the CPE Proxier and this Proxied Device. Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.ManagementServer.VirtualDevice.ProxyProtocol.Z-Wave"><em>Z-Wave</em></span> (see [<a href="#R.Z-Wave">Z-Wave</a>])</li>
<li><span id="D.Device:2.Device.ManagementServer.VirtualDevice.ProxyProtocol.ZigBee"><em>ZigBee</em></span> (see [<a href="#R.ZigBee">ZigBee</a>])</li>
<li><span id="D.Device:2.Device.ManagementServer.VirtualDevice.ProxyProtocol.UPnP-DM"><em>UPnP-DM</em></span> (see [<a href="#R.UPnP-DM:1">UPnP-DM:1</a>])</li>
<li><span id="D.Device:2.Device.ManagementServer.VirtualDevice.ProxyProtocol.ETSI-M2M"><em>ETSI-M2M</em></span> (see [<a href="#R.ETSIM2MFA">ETSIM2MFA</a>])
Vendors can extend the enumerated values with vendor specific extensions, in which case the rules outlined in <strong>{{bibref: non-existent <span class="inserted">TR-106</span>}}</strong> MUST be adhered to.</li></ul></td>
<td>-</td>
<td>2.3</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.ManagementServer.VirtualDevice.DiscoveryProtocol">DiscoveryProtocol</span></td>
<td>string[]</td>
<td>R</td>
<td><p>Comma-separated list of strings, that represents the discovery protocol(s) for this proxied device. Each list item is an enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.ManagementServer.VirtualDevice.DiscoveryProtocol.Z-Wave"><em>Z-Wave</em></span> (see [<a href="#R.Z-Wave">Z-Wave</a>])</li>
<li><span id="D.Device:2.Device.ManagementServer.VirtualDevice.DiscoveryProtocol.ZigBee"><em>ZigBee</em></span> (see [<a href="#R.ZigBee">ZigBee</a>])</li>
<li><span id="D.Device:2.Device.ManagementServer.VirtualDevice.DiscoveryProtocol.UPnP"><em>UPnP</em></span> (see [<a href="#R.UPnP-DAv1">UPnP-DAv1</a>])</li>
<li><span id="D.Device:2.Device.ManagementServer.VirtualDevice.DiscoveryProtocol.ETSI-M2M"><em>ETSI-M2M</em></span> (see [<a href="#R.ETSIM2MFA">ETSIM2MFA</a>])
Vendors can extend the enumerated values with vendor specific extensions, in which case the rules outlined in <strong>{{bibref: non-existent <span class="inserted">TR-106</span>}}</strong> MUST be adhered to.</li></ul></td>
<td>-</td>
<td>2.6</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.ManagementServer.StandbyPolicy.">Device.ManagementServer.StandbyPolicy.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>Parameters related to CPE behavior when waking up from standby. If this object is supported then the CPE MUST support the requirements of <strong>{{bibref: non-existent <span class="inserted">TR-069</span>}}</strong>. NOTE: &ldquo;CR&rdquo;, as used in the names and descriptions of the parameters defined in this object, refers to the Connection Request concept defined in TR-069.</td>
<td>-</td>
<td>2.7</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.ManagementServer.HeartbeatPolicy.">Device.ManagementServer.HeartbeatPolicy.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>Parameters related to CPE behavior in order to issue a Heartbeat event to the ACS using the Inform method call.
If this object is supported then the CPE MUST support the requirements of [<a href="#R.TR-069">Annex O/TR-069</a>].</td>
<td>-</td>
<td>2.12</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.ManagementServer.HeartbeatPolicy.InitiationTime">InitiationTime</span></td>
<td>dateTime</td>
<td>W</td>
<td>An absolute time reference in UTC to determine when the CPE will initiate the Heartbeat event Inform method calls. Each Inform call MUST occur at this reference time plus or minus an integer multiple of the <a href="#D.Device:2.Device.ManagementServer.HeartbeatPolicy.ReportingInterval"><em>ReportingInterval</em></a>. <em>InitiationTime</em> is used only to set the <em>phase</em> of the Heartbeat event Informs. The actual value of <em>InitiationTime</em> can be arbitrarily far into the past or future. For example, if <a href="#D.Device:2.Device.ManagementServer.HeartbeatPolicy.ReportingInterval"><em>ReportingInterval</em></a> is 60 (one minute) and if <em>InitiationTime</em> is set to UTC midnight on some day (in the past, present, or future) then Heartbeat Informs will occur every minute at the next UTC midnight. These MUST begin on the very next midnight, even if <em>InitiationTime</em> refers to a day in the future. The Unknown Time value defined in <strong>{{bibref: non-existent <span class="inserted">TR-106</span>}}</strong> indicates that no particular time reference is specified. The CPE MUST locally choose a random time reference. If absolute time is not available to the CPE, its Heartbeat Inform behavior MUST be the same as if the <em>InitiationTime</em> parameter was set to the Unknown Time value.</td>
<td>-</td>
<td>2.12</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.DeviceInfo.VendorConfigFile.">Device.DeviceInfo.VendorConfigFile.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>Every instance of this object is a Vendor Configuration File, and contains parameters associated with the Vendor Configuration File. This table of Vendor Configuration Files is for information only and does not allow the <span class="removed">ACS</span><span class="inserted">Controller</span> to operate on these files in any way. Whenever the CPE successfully downloads a configuration file as a result of the Download RPC with the FileType argument of <em>3 Vendor Configuration File</em>, the CPE MUST update this table.</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.DeviceInfo.VendorConfigFile.Alias"><em>Alias</em></a>, or with a given value for <a href="#D.Device:2.Device.DeviceInfo.VendorConfigFile.Name"><em>Name</em></a>.</p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.DeviceInfo.ProcessStatus.">Device.DeviceInfo.ProcessStatus.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>Status of the processes on the device.</td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.DeviceInfo.ProcessStatus.ProcessNumberOfEntries">ProcessNumberOfEntries</span></td>
<td>unsignedInt</td>
<td>R</td>
<td><strong>{{numentries: not associated with a table}}</strong><span class="removed"> </span>Since a Process can come and go very quickly, the CPE SHOULD place a locally specified limit on the frequency at which it will notify the ACS of value changes, as described in <strong>{{bibref: non-existent <span class="inserted">TR-069</span>}}</strong>.</td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.DeviceInfo.TemperatureStatus.">Device.DeviceInfo.TemperatureStatus.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>Status of the temperature of the device.</td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.DeviceInfo.TemperatureStatus.TemperatureSensor.">Device.DeviceInfo.TemperatureStatus.TemperatureSensor.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>This object represents information that the device has obtained via sampling an internal temperature sensor.</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.DeviceInfo.TemperatureStatus.TemperatureSensor.Name"><em>Name</em></a>, or with a given value for <a href="#D.Device:2.Device.DeviceInfo.TemperatureStatus.TemperatureSensor.Alias"><em>Alias</em></a>.</p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.DeviceInfo.TemperatureStatus.TemperatureSensor.ResetTime">ResetTime</span></td>
<td>dateTime</td>
<td>R</td>
<td>The time at which this temperature sensor was reset. Reset can be caused by: * <a href="#D.Device:2.Device.DeviceInfo.TemperatureStatus.TemperatureSensor.Status"><em>Status</em></a> transition from <a href="#D.Device:2.Device.DeviceInfo.TemperatureStatus.TemperatureSensor.Status.Disabled"><em>Disabled</em></a> to <a href="#D.Device:2.Device.DeviceInfo.TemperatureStatus.TemperatureSensor.Status.Enabled"><em>Enabled</em></a> * <a href="#D.Device:2.Device.DeviceInfo.TemperatureStatus.TemperatureSensor.Reset"><em>Reset</em></a> set to <em>true</em>. * An internal reset of the temperature sensor (including a reboot of the device). The Unknown Time value, as defined in <strong>{{bibref: non-existent <span class="inserted">TR-106</span>}}</strong>, indicates that this temperature sensor has never been reset, which can only happen if it has never been enabled.</td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.DeviceInfo.TemperatureStatus.TemperatureSensor.LastUpdate">LastUpdate</span></td>
<td>dateTime</td>
<td>R</td>
<td><p>The time at which this temperature sensor’s last good reading was obtained. The Unknown Time value, as defined in <strong>{{bibref: non-existent <span class="inserted">TR-106</span>}}</strong>, indicates a good reading has not been obtained since last reset.</p>

<p>Active Notification requests for this parameter MAY be denied.</p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.DeviceInfo.TemperatureStatus.TemperatureSensor.MinTime">MinTime</span></td>
<td>dateTime</td>
<td>R</td>
<td>The time at which this temperature sensor’s lowest value was read. The Unknown Time value, as defined in <strong>{{bibref: non-existent <span class="inserted">TR-106</span>}}</strong>, indicates a good reading has not been obtained since last reset.</td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.DeviceInfo.TemperatureStatus.TemperatureSensor.MaxTime">MaxTime</span></td>
<td>dateTime</td>
<td>R</td>
<td>The time at which this temperature sensor’s highest value was read. The Unknown Time value, as defined in <strong>{{bibref: non-existent <span class="inserted">TR-106</span>}}</strong>, indicates a good reading has not been obtained since last reset.</td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.DeviceInfo.TemperatureStatus.TemperatureSensor.LowAlarmTime">LowAlarmTime</span></td>
<td>dateTime</td>
<td>R</td>
<td>Initial time at which this temperature sensor’s <a href="#D.Device:2.Device.DeviceInfo.TemperatureStatus.TemperatureSensor.LowAlarmValue"><em>LowAlarmValue</em></a> was encountered. This value is only set the first time the alarm is seen and not changed until the next reset. The Unknown Time value, as defined in <strong>{{bibref: non-existent <span class="inserted">TR-106</span>}}</strong>, indicates that an alarm has not been encountered since the last reset.</td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.DeviceInfo.TemperatureStatus.TemperatureSensor.HighAlarmTime">HighAlarmTime</span></td>
<td>dateTime</td>
<td>R</td>
<td>Initial time at which this temperature sensor’s <a href="#D.Device:2.Device.DeviceInfo.TemperatureStatus.TemperatureSensor.HighAlarmValue"><em>HighAlarmValue</em></a> was encountered. This value is only set the first time the alarm is seen and not changed until the next reset. The Unknown Time value, as defined in <strong>{{bibref: non-existent <span class="inserted">TR-106</span>}}</strong>, indicates that an alarm has not been encountered since the last reset.</td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.DeviceInfo.Processor.">Device.DeviceInfo.Processor.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>Each table entry represents a hardware or virtual processor that resides on this device.</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.DeviceInfo.Processor.Alias"><em>Alias</em></a>.</p></td>
<td>-</td>
<td>2.1</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.DeviceInfo.Processor.Architecture">Architecture</span></td>
<td>string</td>
<td>R</td>
<td><p>The architecture of the processor on the underlying hardware. Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.DeviceInfo.Processor.Architecture.arm"><em>arm</em></span></li>
<li><span id="D.Device:2.Device.DeviceInfo.Processor.Architecture.i386"><em>i386</em></span></li>
<li><span id="D.Device:2.Device.DeviceInfo.Processor.Architecture.m68010"><em>m68010</em></span></li>
<li><span id="D.Device:2.Device.DeviceInfo.Processor.Architecture.m68k"><em>m68k</em></span></li>
<li><span id="D.Device:2.Device.DeviceInfo.Processor.Architecture.mipseb"><em>mipseb</em></span> (big-endian)</li>
<li><span id="D.Device:2.Device.DeviceInfo.Processor.Architecture.mipsel"><em>mipsel</em></span> (little-endian)</li>
<li><span id="D.Device:2.Device.DeviceInfo.Processor.Architecture.powerpc"><em>powerpc</em></span></li>
<li><span id="D.Device:2.Device.DeviceInfo.Processor.Architecture.sh3eb"><em>sh3eb</em></span> (big-endian)</li>
<li><span id="D.Device:2.Device.DeviceInfo.Processor.Architecture.sh3el"><em>sh3el</em></span> (little-endian)</li>
<li><span id="D.Device:2.Device.DeviceInfo.Processor.Architecture.x86_64"><em>x86_64</em></span>
For processor architectures not included in this list, the vendor MAY include vendor-specific values, which MUST use the format defined in <strong>{{bibref: non-existent <span class="inserted">TR-106</span>}}</strong>.</li></ul></td>
<td>-</td>
<td>2.1</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.DeviceInfo.VendorLogFile.">Device.DeviceInfo.VendorLogFile.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>Each table entry represents a Vendor Log File. This table of log files is informational only and does not allow the <span class="removed">ACS</span><span class="inserted">Controller</span> to operate on these files in any way.</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.DeviceInfo.VendorLogFile.Alias"><em>Alias</em></a>, or with a given value for <a href="#D.Device:2.Device.DeviceInfo.VendorLogFile.Name"><em>Name</em></a>.</p></td>
<td>-</td>
<td>2.1</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.DeviceInfo.Location.">Device.DeviceInfo.Location.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>This object contains Location information.</p>

<p>At most one entry in this table can exist with the same values for both <a href="#D.Device:2.Device.DeviceInfo.Location.Source"><em>Source</em></a> and <a href="#D.Device:2.Device.DeviceInfo.Location.ExternalSource"><em>ExternalSource</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.DeviceInfo.Location.ExternalSource"><em>ExternalSource</em></a> such that the new entry does not conflict with any existing entries.</p></td>
<td>-</td>
<td>2.4</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.DeviceInfo.Location.ExternalSource">ExternalSource</span></td>
<td>string</td>
<td>R</td>
<td><p>URL, MAC address, or other identifier that identifies an &ldquo;External&rdquo; source of this location. Meaningful only if <a href="#D.Device:2.Device.DeviceInfo.Location.Source"><em>Source</em></a> has a value of <a href="#D.Device:2.Device.DeviceInfo.Location.Source.External"><em>External</em></a>, otherwise it MUST be an empty string. If <a href="#D.Device:2.Device.DeviceInfo.Location.ExternalProtocol"><em>ExternalProtocol</em></a> has a value of <a href="#D.Device:2.Device.DeviceInfo.Location.ExternalProtocol.CWMP"><em>CWMP</em></a>, this is the URL or IP address of the <span class="removed">ACS.</span><span class="inserted">Controller.</span></p>

<p>The Agent MUST choose an initial value that doesn’t conflict with any existing entries.</p></td>
<td>-</td>
<td>2.4</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.DeviceInfo.Location.ExternalProtocol">ExternalProtocol</span></td>
<td>string</td>
<td>R</td>
<td><p>Protocol used to acquire a location from an &ldquo;External&rdquo; source. Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.DeviceInfo.Location.ExternalProtocol."><em>&lt;Empty&gt;</em></span> (An empty string)</li>
<li><span id="D.Device:2.Device.DeviceInfo.Location.ExternalProtocol.CWMP"><em>CWMP</em></span></li>
<li><span id="D.Device:2.Device.DeviceInfo.Location.ExternalProtocol.USP"><em>USP</em></span></li>
<li><span id="D.Device:2.Device.DeviceInfo.Location.ExternalProtocol.OMA-DM"><em>OMA-DM</em></span></li>
<li><span id="D.Device:2.Device.DeviceInfo.Location.ExternalProtocol.SNMP"><em>SNMP</em></span></li>
<li><span id="D.Device:2.Device.DeviceInfo.Location.ExternalProtocol.UPnP"><em>UPnP</em></span></li>
<li><span id="D.Device:2.Device.DeviceInfo.Location.ExternalProtocol.HELD"><em>HELD</em></span></li>
<li><span id="D.Device:2.Device.DeviceInfo.Location.ExternalProtocol.DHCPv4"><em>DHCPv4</em></span></li>
<li><span id="D.Device:2.Device.DeviceInfo.Location.ExternalProtocol.DHCPv6"><em>DHCPv6</em></span></li>
<li><span id="D.Device:2.Device.DeviceInfo.Location.ExternalProtocol.LLDP-MED"><em>LLDP-MED</em></span></li>
<li><span id="D.Device:2.Device.DeviceInfo.Location.ExternalProtocol.MLP"><em>MLP</em></span></li>
<li><span id="D.Device:2.Device.DeviceInfo.Location.ExternalProtocol.Other"><em>Other</em></span>
Meaningful only if <a href="#D.Device:2.Device.DeviceInfo.Location.Source"><em>Source</em></a> has a value of <a href="#D.Device:2.Device.DeviceInfo.Location.Source.External"><em>External</em></a>, otherwise it MUST be an empty string.</li></ul>

<div class="diffs"><p><strong>Changes in 2.13:</strong></p>

<ul>
<li>Added string <em>USP</em> enumeration</li></ul></div></td>
<td>CWMP</td>
<td>2.4</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.DeviceInfo.Location.DataObject">DataObject</span></td>
<td>string(:1200)</td>
<td>W</td>
<td>The currently valid location information. Writable only when <a href="#D.Device:2.Device.DeviceInfo.Location.ExternalProtocol"><em>ExternalProtocol</em></a> has a value of <a href="#D.Device:2.Device.DeviceInfo.Location.ExternalProtocol.CWMP"><em>CWMP</em></a><span class="inserted"> or <a href="#D.Device:2.Device.DeviceInfo.Location.ExternalProtocol.USP"><em>USP</em></a></span>. If obtained through the local GPS/AGPS then the location information is formatted according to [<a href="#R.RFC5491">RFC5491</a>]. If manually configured then location information will be XML-formatted according to [<a href="#R.RFC5491">RFC5491</a>] (geographical information) and [<a href="#R.RFC5139">RFC5139</a>] (civic addresses). If obtained by an external source this is the location information as received. If it’s an XML document (e.g. CWMP, OMA-DM, UPnP, HELD, MLP) the location information will be represented as-is, otherwise it will be converted to base64. CWMP <span class="inserted">or USP </span>configured location information will be XML-formatted according to [<a href="#R.RFC5491">RFC5491</a>] (geographical information) and [<a href="#R.RFC5139">RFC5139</a>] (civic addresses). Only zero or one Location object instance with value <strong>{{enum: non-existent CWMP</strong>{{inserted: unexpected argument ExternalProtocol after: []}}** or <strong>{{enum: parameter DataObject doesn’t define any values}}</strong>}}** MUST exist at any given time.</td>
<td>-</td>
<td>2.4</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.DeviceInfo.SupportedDataModel.">Device.DeviceInfo.SupportedDataModel.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>This table contains details of the device’s Current Supported Data Model.
The table MUST describe the device’s entire Supported Data Model. Therefore, if a device’s Supported Data Model changes at run-time, entries will need to be added or removed as appropriate.
Each table entry MUST refer to only a single Root Object or Service Object. The device MAY choose to use more than one table entry for a given Root Object or Service Object.
Considering that every device has some form of a data model, this table MUST NOT be empty.</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.DeviceInfo.SupportedDataModel.URL"><em>URL</em></a>, or with a given value for <a href="#D.Device:2.Device.DeviceInfo.SupportedDataModel.Alias"><em>Alias</em></a>, or with a given value for <a href="#D.Device:2.Device.DeviceInfo.SupportedDataModel.UUID"><em>UUID</em></a>.</p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.DeviceInfo.SupportedDataModel.URL">URL</span></td>
<td>string(:256)</td>
<td>R</td>
<td>URL ([<a href="#R.RFC3986">RFC3986</a>]) that describes some or all of the device’s Current Supported Data Model. The URL MUST reference an XML file which describes the appropriate part of the Supported Data Model. The referenced XML file MUST be compliant with the DT (Device Type) Schema that is described in <strong>{{bibref: non-existent <span class="inserted">TR-106</span>}}</strong>, including any additional normative requirements referenced within the Schema. The XML file referenced by this URL MUST NOT change while the CPE is running, and SHOULD NOT change across a CPE reboot. Note that <a href="#D.Device:2.Device.DeviceInfo.SupportedDataModel.UUID"><em>UUID</em></a> is a unique key, so the XML file referenced by this URL will never change. The XML file MAY be located within the CPE. In this scenario the CPE MAY use the value of &ldquo;localhost&rdquo; as URL host portion, When the &ldquo;localhost&rdquo; value is used, the ACS has the responsibility to substitute the &ldquo;localhost&rdquo; value with the host portion of the connection request URL. Behavior in the event of an invalid URL, failure to access the referenced XML file, or an invalid XML file, is implementation-dependent.</td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.DeviceInfo.SupportedDataModel.URN">URN</span></td>
<td>string(:256)</td>
<td>R</td>
<td>URN ([<a href="#R.RFC3986">RFC3986</a>]) that is the value of the spec attribute in the DM (data model) Instance that defines the Root Object or Service Object referenced by this table entry. For example, if this table entry references a DT Instance that refers to the <span class="removed"><em>Device:1.3</em></span><span class="inserted"><em>Device:2.13</em></span> Root Object, the value of this parameter would be <span class="removed"><em>urn:broadband-forum-org:tr-157-1-0-0</em>, because TR-157 defines <em>Device:1.3</em>.</span><span class="inserted"><em>urn:broadband-forum-org:tr-181-2-13-0</em>.</span> If the DT Instance instead referred to a vendor-specific Root Object, e.g. <em>X_EXAMPLE_Device:1.0</em> (derived from <em>Device:1.3</em>), the value of this parameter would be something like <em>urn:example-com:device-1-0-0</em>.</td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.DeviceInfo.ProxierInfo.">Device.DeviceInfo.ProxierInfo.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>Represents the associated CPE Proxier for a Proxied Device that utilizes the Virtual CWMP Device Mechanism <strong>{{bibref: non-existent <span class="inserted">TR-069</span>}}</strong>.</td>
<td>-</td>
<td>2.3</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.DeviceInfo.ProxierInfo.ProxyProtocol">ProxyProtocol</span></td>
<td>string</td>
<td>R</td>
<td><p>The protocol being used to communicate between the CPE Proxier and this Proxied Device. Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.DeviceInfo.ProxierInfo.ProxyProtocol.Z-Wave"><em>Z-Wave</em></span> (see [<a href="#R.Z-Wave">Z-Wave</a>])</li>
<li><span id="D.Device:2.Device.DeviceInfo.ProxierInfo.ProxyProtocol.ZigBee"><em>ZigBee</em></span> (see [<a href="#R.ZigBee">ZigBee</a>])</li>
<li><span id="D.Device:2.Device.DeviceInfo.ProxierInfo.ProxyProtocol.UPnP-DM"><em>UPnP-DM</em></span> (see [<a href="#R.UPnP-DM:1">UPnP-DM:1</a>])</li>
<li><span id="D.Device:2.Device.DeviceInfo.ProxierInfo.ProxyProtocol.ETSI-M2M"><em>ETSI-M2M</em></span> (see [<a href="#R.ETSIM2MFA">ETSIM2MFA</a>])
Vendors can extend the enumerated values with vendor specific extensions, in which case the rules outlined in <strong>{{bibref: non-existent <span class="inserted">TR-106</span>}}</strong> MUST be adhered to.</li></ul></td>
<td>-</td>
<td>2.3</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.DSL.">Device.DSL.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object models DSL lines, DSL channels, DSL bonding, and DSL diagnostics. The specific interface objects defined here are <a href="#D.Device:2.Device.DSL.Line."><em>Line</em></a>, <a href="#D.Device:2.Device.DSL.Channel."><em>Channel</em></a>, and <a href="#D.Device:2.Device.DSL.BondingGroup."><em>BondingGroup</em></a>. Each <a href="#D.Device:2.Device.DSL.Line."><em>Line</em></a> models a layer 1 DSL Line interface, and each <a href="#D.Device:2.Device.DSL.Channel."><em>Channel</em></a> models a layer 1 DSL Channel interface where multiple channels can run over a DSL line. In the case where bonding is configured, it is expected that <a href="#D.Device:2.Device.DSL.BondingGroup."><em>BondingGroup</em></a> is stacked above the <a href="#D.Device:2.Device.DSL.Channel."><em>Channel</em></a> instances within its group.</td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.DSL.BondingGroup.">Device.DSL.BondingGroup.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>DSL bonding group table (a stackable interface object as described in [<a href="#R.TR-181i2">Section 4.2/TR-181i2</a>]). Each instance is a bonding group, and is expected to be stacked above a <a href="#D.Device:2.Device.DSL.Channel."><em>DSL.Channel</em></a> instance or a <a href="#D.Device:2.Device.FAST.Line."><em>FAST.Line</em></a> instance for each bonded channel in the group. Many of the parameters within this object, including <a href="#D.Device:2.Device.DSL.BondingGroup.LowerLayers"><em>LowerLayers</em></a>, are read-only because bonding is not expected to be configured <span class="removed">via</span><span class="inserted">by</span> <span class="removed">[<a href="#R.TR-069">TR-069</a>].</span><span class="inserted">a Controller.</span> The DSL bonding data model is closely aligned with [<a href="#R.TR-159">TR-159</a>]. Corresponds to [<a href="#R.TR-159">TR-159</a>] <em>oBondingGroup</em>.</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.DSL.BondingGroup.Alias"><em>Alias</em></a>, or with a given value for <a href="#D.Device:2.Device.DSL.BondingGroup.Name"><em>Name</em></a>, or with a given value for <a href="#D.Device:2.Device.DSL.BondingGroup.GroupID"><em>GroupID</em></a>.</p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.DSL.BondingGroup.LowerLayers">LowerLayers</span></td>
<td>string[](:1024)</td>
<td>R</td>
<td>Comma-separated list (maximum number of characters 1024) of strings. Each list item MUST be the Path Name of an interface object that is stacked immediately below this interface object, or an empty string. See [<a href="#R.TR-181i2">Section 4.2.1/TR-181i2</a>]. <em>LowerLayers</em> is read-only for this object because bonding is expected to be configured by the CPE, not by the <span class="removed">ACS.</span><span class="inserted">Controller.</span></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.DSL.BondingGroup.BondedChannel.">Device.DSL.BondingGroup.{i}.BondedChannel.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>DSL bonded channel table. Each table entry represents a bonded channel within the bonding group, and is associated with exactly one <a href="#D.Device:2.Device.DSL.Channel."><em>DSL.Channel</em></a> instance or one <a href="#D.Device:2.Device.FAST.Line."><em>FAST.Line</em></a> instance. There MUST be an instance of <em>BondedChannel</em> for each DSL channel or FAST line that is bonded.
When a <a href="#D.Device:2.Device.DSL.Channel."><em>DSL.Channel</em></a> or <a href="#D.Device:2.Device.FAST.Line."><em>FAST.Line</em></a> is no longer bonded, then the CPE MUST delete the corresponding <em>BondedChannel</em> instance. However, when a bonded <a href="#D.Device:2.Device.DSL.Channel."><em>DSL.Channel</em></a> or <a href="#D.Device:2.Device.FAST.Line."><em>FAST.Line</em></a> becomes disabled, the channel remains bonded and so the corresponding <em>BondedChannel</em> instance MUST NOT be deleted.</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.DSL.BondingGroup.BondedChannel.Alias"><em>Alias</em></a>, or with a given value for <a href="#D.Device:2.Device.DSL.BondingGroup.BondedChannel.Channel"><em>Channel</em></a>.</p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.DSL.BondingGroup.BondedChannel.Channel">Channel</span></td>
<td>string(:256)</td>
<td>R</td>
<td>The value MUST be the Path Name of a row in the <a href="#D.Device:2.Device.DSL.Channel."><em>DSL.Channel.</em></a> or <a href="#D.Device:2.Device.FAST.Line."><em>FAST.Line.</em></a> tables. If the referenced object is deleted, the parameter value MUST be set to an empty string.This is the channel that is being bonded. This is read-only because bonding is expected to be configured by the CPE, not by the <span class="removed">ACS.</span><span class="inserted">Controller.</span></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.DSL.Diagnostics.">Device.DSL.Diagnostics.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>The DSL Diagnostics object.

<div class="diffs"><p><strong>Changes in 2.13:</strong></p>

<ul>
<li>Added <a href="#D.Device:2.Device.DSL.Diagnostics.SELTUER."><em>SELTUER.</em></a> object</li>
<li>Added <a href="#D.Device:2.Device.DSL.Diagnostics.SELTQLN."><em>SELTQLN.</em></a> object</li>
<li>Added <a href="#D.Device:2.Device.DSL.Diagnostics.SELTP."><em>SELTP.</em></a> object</li></ul></div></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object inserted">
<td><span id="D.Device:2.Device.DSL.Diagnostics.SELTUER.">Device.DSL.Diagnostics.SELTUER.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object contains DSL Single Ended Line Test - Physical Medium Dependent (SELT-PMD) Uncalibrated Echo Response (UER) diagnostics parameters.
This object is for the CPE, aka the Transmission Unit - Remote end (TU-R).
Reference: ITU-T Recommendation [<a href="#R.G.996.2">Clause A.2, SELT-PMD management entity/G.996.2</a>].</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.DSL.Diagnostics.SELTUER.DiagnosticsState">DiagnosticsState</span></td>
<td><span title="DiagnosticsState">string</span></td>
<td>W</td>
<td><p>[<a href="#T.DiagnosticsState">DiagnosticsState</a>] Indicates the availability of diagnostics data. Enumeration of:</p>

<p>Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.DSL.Diagnostics.SELTUER.DiagnosticsState.None"><em>None</em></span></li>
<li><span id="D.Device:2.Device.DSL.Diagnostics.SELTUER.DiagnosticsState.Requested"><em>Requested</em></span></li>
<li><span id="D.Device:2.Device.DSL.Diagnostics.SELTUER.DiagnosticsState.Canceled"><em>Canceled</em></span> (OPTIONAL)</li>
<li><span id="D.Device:2.Device.DSL.Diagnostics.SELTUER.DiagnosticsState.Complete"><em>Complete</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.DSL.Diagnostics.SELTUER.DiagnosticsState.Error"><em>Error</em></span> (READONLY, OPTIONAL)</li></ul>

<p>If the ACS sets the value of this parameter to <a href="#D.Device:2.Device.DSL.Diagnostics.SELTUER.DiagnosticsState.Requested"><em>Requested</em></a>, the
CPE MUST initiate the corresponding diagnostic test. When writing, the
only allowed values are <a href="#D.Device:2.Device.DSL.Diagnostics.SELTUER.DiagnosticsState.Requested"><em>Requested</em></a> and <a href="#D.Device:2.Device.DSL.Diagnostics.SELTUER.DiagnosticsState.Canceled"><em>Canceled</em></a>. To
ensure the use of the proper test parameters (the writable parameters in
this object), the test parameters MUST be set, and any errors or
inconsistencies in the test parameters MUST be detected, either prior to
or at the same time as (in the same SetParameterValues) setting this
parameter to <a href="#D.Device:2.Device.DSL.Diagnostics.SELTUER.DiagnosticsState.Requested"><em>Requested</em></a>.</p>

<p>When requested, the CPE SHOULD wait until after completion of the
communication session with the ACS before starting the diagnostic test.</p>

<p>When the test is completed, the value of this parameter MUST be either
<a href="#D.Device:2.Device.DSL.Diagnostics.SELTUER.DiagnosticsState.Complete"><em>Complete</em></a> (if the test completed successfully), or one of the
<em>Error</em> values listed above.</p>

<p>If the value of this parameter is anything other than <a href="#D.Device:2.Device.DSL.Diagnostics.SELTUER.DiagnosticsState.Complete"><em>Complete</em></a>,
the values of the results parameters for this test are indeterminate.</p>

<p>When the diagnostic initiated by the ACS is completed (successfully or
not), but not if it is canceled for any reason, the CPE MUST establish a
new connection to the ACS to allow the ACS to view the results,
indicating the Event code <em>8 DIAGNOSTICS COMPLETE</em> in the Inform
message.</p>

<p>After the diagnostic is complete, the value of all result parameters (all
read-only parameters in this object) MUST be retained by the CPE until
either this diagnostic is run again, or the CPE reboots. After a reboot,
if the CPE has not retained the result parameters from the most recent
test, it MUST set the value of this parameter to <a href="#D.Device:2.Device.DSL.Diagnostics.SELTUER.DiagnosticsState.None"><em>None</em></a>.</p>

<p>Modifying any of the writable parameters in this object except for this
one MUST result in the value of this parameter being set to
<a href="#D.Device:2.Device.DSL.Diagnostics.SELTUER.DiagnosticsState.None"><em>None</em></a>.</p>

<p>While the test is in progress, modifying any of the writable parameters
in this object except for this one MUST result in the test being
terminated and the value of this parameter being set to <a href="#D.Device:2.Device.DSL.Diagnostics.SELTUER.DiagnosticsState.None"><em>None</em></a>.</p>

<p>While the test is in progress, setting this parameter to
<a href="#D.Device:2.Device.DSL.Diagnostics.SELTUER.DiagnosticsState.Requested"><em>Requested</em></a> (and possibly modifying other writable parameters in
this object) MUST result in the test being terminated and then restarted
using the current values of the test parameters.</p>

<p>While the test is in progress, setting this parameter to
<a href="#D.Device:2.Device.DSL.Diagnostics.SELTUER.DiagnosticsState.Canceled"><em>Canceled</em></a> MUST result in the test being canceled and the value of
this parameter being set to <a href="#D.Device:2.Device.DSL.Diagnostics.SELTUER.DiagnosticsState.None"><em>None</em></a>. If the CPE does not support
the <a href="#D.Device:2.Device.DSL.Diagnostics.SELTUER.DiagnosticsState.Canceled"><em>Canceled</em></a> value, it MUST return a SPV error with &ldquo;Invalid
Parameter value&rdquo; (9007) to the ACS instead.</p>

<p>Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.DSL.Diagnostics.SELTUER.DiagnosticsState.None"><em>None</em></span></li>
<li><span id="D.Device:2.Device.DSL.Diagnostics.SELTUER.DiagnosticsState.Requested"><em>Requested</em></span></li>
<li><span id="D.Device:2.Device.DSL.Diagnostics.SELTUER.DiagnosticsState.Canceled"><em>Canceled</em></span> (OPTIONAL)</li>
<li><span id="D.Device:2.Device.DSL.Diagnostics.SELTUER.DiagnosticsState.Complete"><em>Complete</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.DSL.Diagnostics.SELTUER.DiagnosticsState.Error"><em>Error</em></span> (READONLY, OPTIONAL)</li></ul></td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.DSL.Diagnostics.SELTUER.Interface">Interface</span></td>
<td>string(:256)</td>
<td>W</td>
<td>The value MUST be the Path Name of a row in the <a href="#D.Device:2.Device.DSL.Line."><em>DSL.Line.</em></a> table. This is the interface over which the test is to be performed.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.DSL.Diagnostics.SELTUER.UERMaxMeasurementDuration">UERMaxMeasurementDuration</span></td>
<td>unsignedInt(5:240)</td>
<td>W</td>
<td>This parameter is the SELT UER maximum measurement duration (MMD) measured in <em>seconds</em>.
This parameter is defined as SELT_UER_MMD_R in ITU-T Recommendation [<a href="#R.G.996.2">Clause A.2.1.1/G.996.2</a>].</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.DSL.Diagnostics.SELTUER.ExtendedBandwidthOperation">ExtendedBandwidthOperation</span></td>
<td>boolean</td>
<td>R</td>
<td>This parameter indicates if the option for extended bandwidth SELT is applied (<em>true</em>) or not applied (<em>false</em>).
If the option for extended bandwidth SELT is applied to UER, then <a href="#D.Device:2.Device.DSL.Diagnostics.SELTUER.UERGroupSize"><em>UERGroupSize</em></a> has three valid values: 1, 2 and 12.
If the option for extended bandwidth SELT is not applied to UER, then <a href="#D.Device:2.Device.DSL.Diagnostics.SELTUER.UERGroupSize"><em>UERGroupSize</em></a> has two valid values: 1 and 2.
<a href="#D.Device:2.Device.DSL.Diagnostics.SELTUER.UERGroupSize"><em>UERGroupSize</em></a> is reported if the option for extended bandwidth UER SELT is supported; otherwise, reporting of the group size is optional.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.DSL.Diagnostics.SELTUER.UER">UER</span></td>
<td><span title="UERComplex[1:4096]">int[2:2][1:4096]</span></td>
<td>R</td>
<td>The Uncalibrated Echo Response (UER) [a(0),b(0)], [a(1),b(1)], …
Comma-separated list (1 to 4096 items) of UERComplexs, with each list item consisting of:.
[<a href="#T.UERComplex">UERComplex</a>] Pair of 32-bit signed integers a(i),b(i) with each pair representing a complex component of the uncalibrated echo response (UER);

<ol>
<li>Real UER component, a(i)</li>
<li>Imaginary UER component, b(i)
for values of i starting at i=0. Both values are represented as signed integers.
The interpretation of the UER value is as defined in [<a href="#R.G.996.2">Clause A.2.2.1/G.996.2</a>].
The value of UER at frequency i*<a href="#D.Device:2.Device.DSL.Diagnostics.SELTUER.UERGroupSize"><em>UERGroupSize</em></a><em>Df = (<a href="#D.Device:2.Device.DSL.Diagnostics.SELTUER.UERScaleFactor"><em>UERScaleFactor</em></a>/(2^31))</em>(a(i)+j*b(i))/(2^31) where Df = 4.3125 kHz.
This parameter is defined as CPE SELT uncalibrated echo response (SELT-UER-R) in ITU-T Recommendation [<a href="#R.G.996.2">Clause A.2.2.1/G.996.2</a>].</li></ol></td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.DSL.Diagnostics.SELTUER.UERScaleFactor">UERScaleFactor</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>The Uncalibrated Echo Response (UER) scale factor.
This parameter is defined as part of the CPE SELT uncalibrated echo response (SELT-UER-R) in ITU-T Recommendation [<a href="#R.G.996.2">Clause A.2.2.1/G.996.2</a>].</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.DSL.Diagnostics.SELTUER.UERGroupSize">UERGroupSize</span></td>
<td>unsignedInt(1:2,12)</td>
<td>R</td>
<td>The Uncalibrated Echo Response (UER) group size, UER_G. In units of <em>subcarriers</em>.
This parameter is defined as part of the CPE SELT uncalibrated echo response (SELT-UER-R) in ITU-T Recommendation [<a href="#R.G.996.2">Clause A.2.2.1/G.996.2</a>].</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.DSL.Diagnostics.SELTUER.UERVar">UERVar</span></td>
<td>int[0:4096]</td>
<td>R</td>
<td>Comma-separated list (0 to 4096 items) of integers. This parameter represents the variance of the <a href="#D.Device:2.Device.DSL.Diagnostics.SELTUER.UER"><em>UER</em></a>. List items represent v(i), for values of i starting at i=0. The variance of the uncalibrated echo response for frequency i*<a href="#D.Device:2.Device.DSL.Diagnostics.SELTUER.UERGroupSize"><em>UERGroupSize</em></a><em>Df is VAR(i</em><a href="#D.Device:2.Device.DSL.Diagnostics.SELTUER.UERGroupSize"><em>UERGroupSize</em></a>*Df) = 3 - v(i)/2 dB where Df = 4.3125 kHz.
This parameter is defined as SELT variance of uncalibrated echo response R (SELT UER-VAR-R) in [<a href="#R.G.996.2">Clause A.2.2.2/G.996.2</a>].</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="object inserted">
<td><span id="D.Device:2.Device.DSL.Diagnostics.SELTQLN.">Device.DSL.Diagnostics.SELTQLN.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object contains DSL Single Ended Line Test - Physical Medium Dependent (SELT-PMD) Quiet Line Noise (QLN) diagnostics parameters.
This object is for the CPE, aka the Transmission Unit - Remote end (TU-R).
Reference: ITU-T Recommendation [<a href="#R.G.996.2">Clause A.2, SELT-PMD management entity/G.996.2</a>].</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.DSL.Diagnostics.SELTQLN.DiagnosticsState">DiagnosticsState</span></td>
<td><span title="DiagnosticsState">string</span></td>
<td>W</td>
<td><p>[<a href="#T.DiagnosticsState">DiagnosticsState</a>] Indicates the availability of diagnostics data. Enumeration of:</p>

<p>Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.DSL.Diagnostics.SELTQLN.DiagnosticsState.None"><em>None</em></span></li>
<li><span id="D.Device:2.Device.DSL.Diagnostics.SELTQLN.DiagnosticsState.Requested"><em>Requested</em></span></li>
<li><span id="D.Device:2.Device.DSL.Diagnostics.SELTQLN.DiagnosticsState.Canceled"><em>Canceled</em></span> (OPTIONAL)</li>
<li><span id="D.Device:2.Device.DSL.Diagnostics.SELTQLN.DiagnosticsState.Complete"><em>Complete</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.DSL.Diagnostics.SELTQLN.DiagnosticsState.Error"><em>Error</em></span> (READONLY, OPTIONAL)</li></ul>

<p>If the ACS sets the value of this parameter to <a href="#D.Device:2.Device.DSL.Diagnostics.SELTQLN.DiagnosticsState.Requested"><em>Requested</em></a>, the
CPE MUST initiate the corresponding diagnostic test. When writing, the
only allowed values are <a href="#D.Device:2.Device.DSL.Diagnostics.SELTQLN.DiagnosticsState.Requested"><em>Requested</em></a> and <a href="#D.Device:2.Device.DSL.Diagnostics.SELTQLN.DiagnosticsState.Canceled"><em>Canceled</em></a>. To
ensure the use of the proper test parameters (the writable parameters in
this object), the test parameters MUST be set, and any errors or
inconsistencies in the test parameters MUST be detected, either prior to
or at the same time as (in the same SetParameterValues) setting this
parameter to <a href="#D.Device:2.Device.DSL.Diagnostics.SELTQLN.DiagnosticsState.Requested"><em>Requested</em></a>.</p>

<p>When requested, the CPE SHOULD wait until after completion of the
communication session with the ACS before starting the diagnostic test.</p>

<p>When the test is completed, the value of this parameter MUST be either
<a href="#D.Device:2.Device.DSL.Diagnostics.SELTQLN.DiagnosticsState.Complete"><em>Complete</em></a> (if the test completed successfully), or one of the
<em>Error</em> values listed above.</p>

<p>If the value of this parameter is anything other than <a href="#D.Device:2.Device.DSL.Diagnostics.SELTQLN.DiagnosticsState.Complete"><em>Complete</em></a>,
the values of the results parameters for this test are indeterminate.</p>

<p>When the diagnostic initiated by the ACS is completed (successfully or
not), but not if it is canceled for any reason, the CPE MUST establish a
new connection to the ACS to allow the ACS to view the results,
indicating the Event code <em>8 DIAGNOSTICS COMPLETE</em> in the Inform
message.</p>

<p>After the diagnostic is complete, the value of all result parameters (all
read-only parameters in this object) MUST be retained by the CPE until
either this diagnostic is run again, or the CPE reboots. After a reboot,
if the CPE has not retained the result parameters from the most recent
test, it MUST set the value of this parameter to <a href="#D.Device:2.Device.DSL.Diagnostics.SELTQLN.DiagnosticsState.None"><em>None</em></a>.</p>

<p>Modifying any of the writable parameters in this object except for this
one MUST result in the value of this parameter being set to
<a href="#D.Device:2.Device.DSL.Diagnostics.SELTQLN.DiagnosticsState.None"><em>None</em></a>.</p>

<p>While the test is in progress, modifying any of the writable parameters
in this object except for this one MUST result in the test being
terminated and the value of this parameter being set to <a href="#D.Device:2.Device.DSL.Diagnostics.SELTQLN.DiagnosticsState.None"><em>None</em></a>.</p>

<p>While the test is in progress, setting this parameter to
<a href="#D.Device:2.Device.DSL.Diagnostics.SELTQLN.DiagnosticsState.Requested"><em>Requested</em></a> (and possibly modifying other writable parameters in
this object) MUST result in the test being terminated and then restarted
using the current values of the test parameters.</p>

<p>While the test is in progress, setting this parameter to
<a href="#D.Device:2.Device.DSL.Diagnostics.SELTQLN.DiagnosticsState.Canceled"><em>Canceled</em></a> MUST result in the test being canceled and the value of
this parameter being set to <a href="#D.Device:2.Device.DSL.Diagnostics.SELTQLN.DiagnosticsState.None"><em>None</em></a>. If the CPE does not support
the <a href="#D.Device:2.Device.DSL.Diagnostics.SELTQLN.DiagnosticsState.Canceled"><em>Canceled</em></a> value, it MUST return a SPV error with &ldquo;Invalid
Parameter value&rdquo; (9007) to the ACS instead.</p>

<p>Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.DSL.Diagnostics.SELTQLN.DiagnosticsState.None"><em>None</em></span></li>
<li><span id="D.Device:2.Device.DSL.Diagnostics.SELTQLN.DiagnosticsState.Requested"><em>Requested</em></span></li>
<li><span id="D.Device:2.Device.DSL.Diagnostics.SELTQLN.DiagnosticsState.Canceled"><em>Canceled</em></span> (OPTIONAL)</li>
<li><span id="D.Device:2.Device.DSL.Diagnostics.SELTQLN.DiagnosticsState.Complete"><em>Complete</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.DSL.Diagnostics.SELTQLN.DiagnosticsState.Error"><em>Error</em></span> (READONLY, OPTIONAL)</li></ul></td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.DSL.Diagnostics.SELTQLN.Interface">Interface</span></td>
<td>string(:256)</td>
<td>W</td>
<td>The value MUST be the Path Name of a row in the <a href="#D.Device:2.Device.DSL.Line."><em>DSL.Line.</em></a> table. This is the interface over which the test is to be performed.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.DSL.Diagnostics.SELTQLN.QLNMaxMeasurementDuration">QLNMaxMeasurementDuration</span></td>
<td>unsignedInt(1:240)</td>
<td>W</td>
<td>This parameter is the SELT QLN maximum measurement duration (MMD) measured in <em>seconds</em>.
This parameter is defined as SELT_QLN_MMD_R in ITU-T Recommendation [<a href="#R.G.996.2">Clause A.2.1.2/G.996.2</a>].</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.DSL.Diagnostics.SELTQLN.ExtendedBandwidthOperation">ExtendedBandwidthOperation</span></td>
<td>boolean</td>
<td>R</td>
<td>This parameter indicates if the option for extended bandwidth SELT is applied (<em>true</em>) or not applied (<em>false</em>).
If the option for extended bandwidth SELT is applied to QLN, then <a href="#D.Device:2.Device.DSL.Diagnostics.SELTQLN.QLNGroupSize"><em>QLNGroupSize</em></a> has three valid values: 1, 2 and 12.
If the option for extended bandwidth SELT is not applied to QLN, then <a href="#D.Device:2.Device.DSL.Diagnostics.SELTQLN.QLNGroupSize"><em>QLNGroupSize</em></a> has two valid values: 1 and 2.
<a href="#D.Device:2.Device.DSL.Diagnostics.SELTQLN.QLNGroupSize"><em>QLNGroupSize</em></a> is reported if the option for extended bandwidth QLN SELT is supported; otherwise, reporting of the group size is optional.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.DSL.Diagnostics.SELTQLN.QLN">QLN</span></td>
<td>int[](:61430)</td>
<td>R</td>
<td>Comma-separated list (maximum number of characters 61430) of integers. List items represent SELT quiet line noise (QLN) per subcarrier group.
Each list element is n(i), with i starting at 0. The value of QLN at frequency i*<a href="#D.Device:2.Device.DSL.Diagnostics.SELTQLN.QLNGroupSize"><em>QLNGroupSize</em></a><em>Df with Df=4.3125 kHz is defined as QLN(i</em><a href="#D.Device:2.Device.DSL.Diagnostics.SELTQLN.QLNGroupSize"><em>QLNGroupSize</em></a>*Df) = -23 - (n(i)/2) dBm/Hz. This data format supports a QLN granularity of 0.5 dB and an dynamic range of -150 to -23 dBm/Hz.
Interpretation of the SELT_QLN_R value is defined in [<a href="#R.G.996.2">Clause A.2.2.3/G.996.2</a>].</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.DSL.Diagnostics.SELTQLN.QLNGroupSize">QLNGroupSize</span></td>
<td>unsignedInt(1:2,12)</td>
<td>R</td>
<td>This parameter represents the Quiet Line Noise (QLN) group size. In units of <em>subcarriers</em>.
This parameter is defined as part of the SELT_QLN_R in ITU-T Recommendation [<a href="#R.G.996.2">Clause A.2.2.3/G.996.2</a>].</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="object inserted">
<td><span id="D.Device:2.Device.DSL.Diagnostics.SELTP.">Device.DSL.Diagnostics.SELTP.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object contains DSL Single-Ended Line Test - Processed (SELT-P) diagnostics parameters.
This object is for the CPE, aka the Transmission Unit - Remote end (TU-R).
Reference: ITU-T Recommendation [<a href="#R.G.996.2">G.996.2</a>].</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.DSL.Diagnostics.SELTP.DiagnosticsState">DiagnosticsState</span></td>
<td><span title="DiagnosticsState">string</span></td>
<td>W</td>
<td><p>[<a href="#T.DiagnosticsState">DiagnosticsState</a>] Indicates the availability of diagnostics data. Enumeration of:</p>

<p>Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.DSL.Diagnostics.SELTP.DiagnosticsState.None"><em>None</em></span></li>
<li><span id="D.Device:2.Device.DSL.Diagnostics.SELTP.DiagnosticsState.Requested"><em>Requested</em></span></li>
<li><span id="D.Device:2.Device.DSL.Diagnostics.SELTP.DiagnosticsState.Canceled"><em>Canceled</em></span> (OPTIONAL)</li>
<li><span id="D.Device:2.Device.DSL.Diagnostics.SELTP.DiagnosticsState.Complete"><em>Complete</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.DSL.Diagnostics.SELTP.DiagnosticsState.Error"><em>Error</em></span> (READONLY, OPTIONAL)</li></ul>

<p>If the ACS sets the value of this parameter to <a href="#D.Device:2.Device.DSL.Diagnostics.SELTP.DiagnosticsState.Requested"><em>Requested</em></a>, the
CPE MUST initiate the corresponding diagnostic test. When writing, the
only allowed values are <a href="#D.Device:2.Device.DSL.Diagnostics.SELTP.DiagnosticsState.Requested"><em>Requested</em></a> and <a href="#D.Device:2.Device.DSL.Diagnostics.SELTP.DiagnosticsState.Canceled"><em>Canceled</em></a>. To
ensure the use of the proper test parameters (the writable parameters in
this object), the test parameters MUST be set, and any errors or
inconsistencies in the test parameters MUST be detected, either prior to
or at the same time as (in the same SetParameterValues) setting this
parameter to <a href="#D.Device:2.Device.DSL.Diagnostics.SELTP.DiagnosticsState.Requested"><em>Requested</em></a>.</p>

<p>When requested, the CPE SHOULD wait until after completion of the
communication session with the ACS before starting the diagnostic test.</p>

<p>When the test is completed, the value of this parameter MUST be either
<a href="#D.Device:2.Device.DSL.Diagnostics.SELTP.DiagnosticsState.Complete"><em>Complete</em></a> (if the test completed successfully), or one of the
<em>Error</em> values listed above.</p>

<p>If the value of this parameter is anything other than <a href="#D.Device:2.Device.DSL.Diagnostics.SELTP.DiagnosticsState.Complete"><em>Complete</em></a>,
the values of the results parameters for this test are indeterminate.</p>

<p>When the diagnostic initiated by the ACS is completed (successfully or
not), but not if it is canceled for any reason, the CPE MUST establish a
new connection to the ACS to allow the ACS to view the results,
indicating the Event code <em>8 DIAGNOSTICS COMPLETE</em> in the Inform
message.</p>

<p>After the diagnostic is complete, the value of all result parameters (all
read-only parameters in this object) MUST be retained by the CPE until
either this diagnostic is run again, or the CPE reboots. After a reboot,
if the CPE has not retained the result parameters from the most recent
test, it MUST set the value of this parameter to <a href="#D.Device:2.Device.DSL.Diagnostics.SELTP.DiagnosticsState.None"><em>None</em></a>.</p>

<p>Modifying any of the writable parameters in this object except for this
one MUST result in the value of this parameter being set to
<a href="#D.Device:2.Device.DSL.Diagnostics.SELTP.DiagnosticsState.None"><em>None</em></a>.</p>

<p>While the test is in progress, modifying any of the writable parameters
in this object except for this one MUST result in the test being
terminated and the value of this parameter being set to <a href="#D.Device:2.Device.DSL.Diagnostics.SELTP.DiagnosticsState.None"><em>None</em></a>.</p>

<p>While the test is in progress, setting this parameter to
<a href="#D.Device:2.Device.DSL.Diagnostics.SELTP.DiagnosticsState.Requested"><em>Requested</em></a> (and possibly modifying other writable parameters in
this object) MUST result in the test being terminated and then restarted
using the current values of the test parameters.</p>

<p>While the test is in progress, setting this parameter to
<a href="#D.Device:2.Device.DSL.Diagnostics.SELTP.DiagnosticsState.Canceled"><em>Canceled</em></a> MUST result in the test being canceled and the value of
this parameter being set to <a href="#D.Device:2.Device.DSL.Diagnostics.SELTP.DiagnosticsState.None"><em>None</em></a>. If the CPE does not support
the <a href="#D.Device:2.Device.DSL.Diagnostics.SELTP.DiagnosticsState.Canceled"><em>Canceled</em></a> value, it MUST return a SPV error with &ldquo;Invalid
Parameter value&rdquo; (9007) to the ACS instead.</p>

<p>Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.DSL.Diagnostics.SELTP.DiagnosticsState.None"><em>None</em></span></li>
<li><span id="D.Device:2.Device.DSL.Diagnostics.SELTP.DiagnosticsState.Requested"><em>Requested</em></span></li>
<li><span id="D.Device:2.Device.DSL.Diagnostics.SELTP.DiagnosticsState.Canceled"><em>Canceled</em></span> (OPTIONAL)</li>
<li><span id="D.Device:2.Device.DSL.Diagnostics.SELTP.DiagnosticsState.Complete"><em>Complete</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.DSL.Diagnostics.SELTP.DiagnosticsState.Error"><em>Error</em></span> (READONLY, OPTIONAL)</li></ul></td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.DSL.Diagnostics.SELTP.Interface">Interface</span></td>
<td>string(:256)</td>
<td>W</td>
<td>The value MUST be the Path Name of a row in the <a href="#D.Device:2.Device.DSL.Line."><em>DSL.Line.</em></a> table. This is the interface over which the test is to be performed.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.DSL.Diagnostics.SELTP.CapacityEstimateEnabling">CapacityEstimateEnabling</span></td>
<td>boolean</td>
<td>W</td>
<td>Capacity estimate calculation enabling: This parameter is expressed as a boolean and takes the value <em>false</em> if xDSL performance estimation is not required, <em>true</em> otherwise.
The capacity estimate calculation enabling parameter is defined in [<a href="#R.G.996.2">Clause B.2.1.1/G.996.2</a>].</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.DSL.Diagnostics.SELTP.CapacitySignalPSD">CapacitySignalPSD</span></td>
<td><span title="PSDBreakPointIndexAndLevel[1:48]">unsignedInt[2:2][1:48]</span></td>
<td>W</td>
<td>The capacity estimate signal Power Spectral Density (PSD):
Comma-separated list (1 to 48 items) of PSDBreak Point Index And Levels, with each list item consisting of:.
[<a href="#T.PSDBreakPointIndexAndLevel">PSDBreakPointIndexAndLevel</a>] 1. the Power Spectral Density (PSD) breakpoint sub-carrier index in the range [0:8191] with Df = 4.3125 kHz frequency spacing, and

<ol>
<li>the value of the level of the PSD at this sub-carrier expressed in <em>0.1 dBm/Hz</em> with an offset of -200 dBm/Hz. The range of valid values for PSD is -30 to -200 dBm/Hz.
Both values are represented as unsignedInt.
This capacity estimate signal PSD parameter is defined in ITU-T Recommendation [<a href="#R.G.996.2">Clause B.2.1.2/G.996.2</a>].</li></ol></td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.DSL.Diagnostics.SELTP.CapacityNoisePSD">CapacityNoisePSD</span></td>
<td><span title="PSDBreakPointIndexAndLevel[1:48]">unsignedInt[2:2][1:48]</span></td>
<td>W</td>
<td>The capacity estimate noise Power Spectral Density (PSD):
Comma-separated list (1 to 48 items) of PSDBreak Point Index And Levels, with each list item consisting of:.
[<a href="#T.PSDBreakPointIndexAndLevel">PSDBreakPointIndexAndLevel</a>] 1. the Power Spectral Density (PSD) breakpoint sub-carrier index in the range [0:8191] with Df = 4.3125 kHz frequency spacing, and

<ol>
<li>the value of the level of the PSD at this sub-carrier expressed in <em>0.1 dBm/Hz</em> with an offset of -200 dBm/Hz. The range of valid values for PSD is -30 to -200 dBm/Hz.
Both values are represented as unsignedInt.
This capacity estimate noise PSD parameter is defined in ITU-T Recommendation [<a href="#R.G.996.2">Clause B.2.1.3/G.996.2</a>].</li></ol></td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.DSL.Diagnostics.SELTP.CapacityTargetMargin">CapacityTargetMargin</span></td>
<td>unsignedInt(0:310)</td>
<td>W</td>
<td>The capacity estimate target noise margin. The range of valid values is 0 to 31 dB, in steps of <em>0.1 dB</em>.
This capacity estimate target noise margin parameter is defined in ITU-T Recommendation [<a href="#R.G.996.2">Clause B.2.1.4/G.996.2</a>].</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.DSL.Diagnostics.SELTP.LoopTermination">LoopTermination</span></td>
<td>string(:21)</td>
<td>R</td>
<td>Loop termination indicator, one of the following state indications:
&lsquo;Open&rsquo;
&lsquo;Short&rsquo;
&lsquo;Powered on DSLAM/DPU&rsquo;
&lsquo;Unknown&rsquo;
This parameter is defined as LOOP-TERM in ITU-T Recommendation [<a href="#R.G.996.2">Clause B.1.1.1/G.996.2</a>].</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.DSL.Diagnostics.SELTP.LoopLength">LoopLength</span></td>
<td>unsignedInt(0:16383)</td>
<td>R</td>
<td>This parameter is the loop length with units of <em>meters</em>.
This parameter is defined as the loop length parameter LOOP_LEN in ITU-T Recommendation [<a href="#R.G.996.2">Clause B.1.1.2/G.996.2</a>].</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.DSL.Diagnostics.SELTP.LoopTopology">LoopTopology</span></td>
<td>string[](:256)</td>
<td>R</td>
<td>Comma-separated list (maximum number of characters 256) of strings. List items represent paired parameters [LOOP_SEG_LEN, LOOP_SEG_BTAP] representing a concatenation of loop segment types, where LOOP_SEG_LEN represents the length of the segment in meters; and LOOP_SEG_BTAP is a string that identifies the segment type as either &ldquo;in series&rdquo; or &ldquo;bridged tap&rdquo;.
The first loop segment in the list shall be the segment connected to the SELT-PMD block, subsequent loop segments in the list shall describe the loop in the direction toward the far-end loop termination.
This Loop Topology parameter is defined in ITU-T Recommendation [<a href="#R.G.996.2">Clause B.1.1.3/G.996.2</a>].</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.DSL.Diagnostics.SELTP.AttenuationCharacteristics">AttenuationCharacteristics</span></td>
<td>string[](:61430)</td>
<td>R</td>
<td>Comma-separated list (maximum number of characters 61430) of strings. List items represent paired frequency spacing index i and transfer function log value, i.e. [i,TFlog(i * Df)], where the reference frequency spacing Df = 4.3125 kHz, the index i valid range is 0 to 8191, and TFlog(i * Df) spans a range from +6.0 dB down to -96.2 dB with units of 0.1 dB.
The Attenuation characteristics TFlog(f) parameter is defined in ITU-T Recommendation [<a href="#R.G.996.2">Clause B.1.1.6/G.996.2</a>].</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.DSL.Diagnostics.SELTP.MissingFilter">MissingFilter</span></td>
<td>boolean</td>
<td>R</td>
<td>Missing micro-filter or splitter: This parameter is a binary indication of a missing or incorrectly installed splitter or micro-filter at the U-R reference point. A value of true represents a missing splitter.
The missing micro-filter or splitter parameter is defined in [<a href="#R.G.996.2">Clause B.1.1.4/G.996.2</a>].</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.DSL.Diagnostics.SELTP.CapacityEstimate">CapacityEstimate</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>Capacity Estimate: This parameter is an unsigned integer representing the capacity estimate in kbit/s, with units of <em>kbit/s</em>.
The capacity estimate parameter is defined in [<a href="#R.G.996.2">Clause B.1.1.7/G.996.2</a>].</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.Cellular.">Device.Cellular.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object models cellular interfaces and access points.</td>
<td>-</td>
<td>2.8</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.Cellular.Interface.">Device.Cellular.Interface.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>Cellular interface table (a stackable interface object as described in [<a href="#R.TR-181i2">Section 4.2/TR-181i2</a>]). Each instance of this object models a cellular modem with a single radio and a single <a href="#D.Device:2.Device.Cellular.Interface.USIM."><em>USIM</em></a>.</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.Cellular.Interface.Alias"><em>Alias</em></a>, or with a given value for <a href="#D.Device:2.Device.Cellular.Interface.Name"><em>Name</em></a>.</p></td>
<td>-</td>
<td>2.8</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.Cellular.Interface.USIM.">Device.Cellular.Interface.{i}.USIM.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>USIM (Universal Subscriber Identity Module or SIM card) parameters for the interface.</td>
<td>-</td>
<td>2.8</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.Cellular.Interface.USIM.PIN">PIN</span></td>
<td>string(:4)</td>
<td>W</td>
<td><p>Allows the <span class="removed">ACS</span><span class="inserted">Controller</span> to change the USIM PIN used for SIM card activation.</p>

<p>When read, this parameter returns an empty string, regardless of the actual value.</p></td>
<td>-</td>
<td>2.8</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.Ethernet.">Device.Ethernet.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>Ethernet object. This object models several Ethernet interface objects, each representing a different stack layer, including: <a href="#D.Device:2.Device.Ethernet.Interface."><em>Interface</em></a>, <a href="#D.Device:2.Device.Ethernet.Link."><em>Link</em></a>, and <a href="#D.Device:2.Device.Ethernet.VLANTermination."><em>VLANTermination</em></a>. <a href="#D.Device:2.Device.Ethernet.Interface."><em>Interface</em></a> is media-specific and models a port, the PHY layer, and the MAC layer. <a href="#D.Device:2.Device.Ethernet.Link."><em>Link</em></a> is media-independent and models the Logical Link Control (LLC) layer. An &ldquo;outer&rdquo; <a href="#D.Device:2.Device.Ethernet.VLANTermination."><em>VLANTermination</em></a>, when present, is expected to be stacked on top of <a href="#D.Device:2.Device.Ethernet.Link."><em>Link</em></a> objects to receive and send frames with a configured VLANID.

<div class="diffs"><p><strong>Changes in 2.13:</strong></p>

<ul>
<li>Added <a href="#D.Device:2.Device.Ethernet.WoLSupported"><em>WoLSupported</em></a> parameter</li>
<li>Added <a href="#D.Device:2.Device.Ethernet.WoL."><em>WoL.</em></a> object</li></ul></div></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Ethernet.WoLSupported">WoLSupported</span></td>
<td>boolean</td>
<td>R</td>
<td>Indicates that WoL (Wake on LAN) over Ethernet is supported.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="object inserted">
<td><span id="D.Device:2.Device.Ethernet.WoL.">Device.Ethernet.WoL.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object provides access to the WoL (Wake on LAN) funtionality.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Ethernet.WoL.SendMagicPacket">SendMagicPacket</span></td>
<td>boolean</td>
<td>W</td>
<td>When set to <em>true</em>, the CPE must send a magic packet over its active Ethernet interfaces.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Ethernet.WoL.MACAddress">MACAddress</span></td>
<td><span title="MACAddress">string(:17)</span></td>
<td>W</td>
<td>[<a href="#T.MACAddress">MACAddress</a>] MAC address target of the magic packet.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Ethernet.WoL.Password">Password</span></td>
<td>string</td>
<td>W</td>
<td>The SecureOn password. The parameter value can be empty or, if present, can contain either 4 bytes or 6 bytes.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.USB.">Device.USB.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>Universal Serial Bus ([<a href="#R.USB1.0">USB1.0</a>], [<a href="#R.USB2.0">USB2.0</a>], [<a href="#R.USB3.0">USB3.0</a>]). This object contains the <a href="#D.Device:2.Device.USB.Interface."><em>Interface</em></a>, <a href="#D.Device:2.Device.USB.Port."><em>Port</em></a>, and <a href="#D.Device:2.Device.USB.USBHosts."><em>USBHosts</em></a> objects.</td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.USB.USBHosts.">Device.USB.USBHosts.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object models the CPE’s USB Host controllers. See <strong>{{bibref: non-existent <span class="inserted">TR-181i2</span>}}</strong> for Theory of Operation.</td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.Ghn.">Device.Ghn.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>G.hn object that contains an <a href="#D.Device:2.Device.Ghn.Interface."><em>Interface</em></a> table for G.hn supported CPE. The ITU-T G.hn specifications [<a href="#R.G.9960">G.9960</a>] and [<a href="#R.G.9961">G.9961</a>] define Physical and MAC Layers for communication between two or more G.hn nodes in the home network over multiple wired media such as power line, phone line and coaxial cable.</td>
<td>-</td>
<td>2.4</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.Ghn.Diagnostics.">Device.Ghn.Diagnostics.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>The G.hn Diagnostics object.</td>
<td>-</td>
<td>2.8</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.Ghn.Diagnostics.PHYThroughput.">Device.Ghn.Diagnostics.PHYThroughput.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>G.hn PHY throughput diagnostics configuration and results.
When diagnostics are requested, all G.hn nodes for which the <a href="#D.Device:2.Device.Ghn.Interface.PHYThroughputDiagnosticsEnable"><em>Interface.{i}.PHYThroughputDiagnosticsEnable</em></a> parameter is set enter PHY diagnostics mode.

<div class="diffs"><p><strong>Changes in 2.13:</strong></p>

<ul>
<li>Removed <strong>{{param: non-existent Interface
:::</strong> parameter</li>
<li>Removed <strong>{{param: non-existent DiagnoseMACAddress</strong> parameter</li>
<li>Removed <strong>{{param: non-existent PHYThroughputResultNumberOfEntries}}</strong> parameter</li>
<li>Removed <strong>{{object: non-existent Result.{i}.}}</strong> object}}}}</li></ul></div></td>
<td>-</td>
<td>2.8</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.WiFi.">Device.WiFi.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>The WiFi object is based on the WiFi Alliance 802.11 specifications ([<a href="#R.802.11-2007">802.11-2007</a>]). It defines interface objects (<a href="#D.Device:2.Device.WiFi.Radio."><em>Radio</em></a> and <a href="#D.Device:2.Device.WiFi.SSID."><em>SSID</em></a>), and application objects (<a href="#D.Device:2.Device.WiFi.AccessPoint."><em>AccessPoint</em></a> and <a href="#D.Device:2.Device.WiFi.EndPoint."><em>EndPoint</em></a>).

<div class="diffs"><p><strong>Changes in 2.13:</strong></p>

<ul>
<li>Added <a href="#D.Device:2.Device.WiFi.MultiAP."><em>MultiAP.</em></a> object</li>
<li>Added <a href="#D.Device:2.Device.WiFi.DataElements."><em>DataElements.</em></a> object</li></ul></div></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object inserted">
<td><span id="D.Device:2.Device.WiFi.MultiAP.">Device.WiFi.MultiAP.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object describes a Wi-Fi network containing 1 or more Access Point devices.
This object is related to a Wi-Fi network that contains multiple Access Points (Multi-AP) and utilizes software logic to optimize that Wi-Fi network (typically via steering STAs, also known as Associated Devices, to the best Access Point). This object exposes the view of the Wi-Fi netwtork from the perspective of the Multi-AP Controller. The Wi-Fi Alliance EasyMesh solution is one example of managing a Multi-AP network.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.MultiAP.APDeviceNumberOfEntries">APDeviceNumberOfEntries</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>The number of entries in the <a href="#D.Device:2.Device.WiFi.MultiAP.APDevice."><em>APDevice</em></a> table.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="object inserted">
<td><span id="D.Device:2.Device.WiFi.MultiAP.SteeringSummaryStats.">Device.WiFi.MultiAP.SteeringSummaryStats.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>The summary of statistics related to Multi-AP Steering for the Wi-Fi network.
The counters contained in <em>SteeringSummaryStats</em> are all reset on reboot.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.MultiAP.SteeringSummaryStats.NoCandidateAPFailures">NoCandidateAPFailures</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td>[<a href="#T.StatsCounter64">StatsCounter64</a>] Number of times Associated Devices should have been steered but weren’t because a better candidate AP couldn’t be found.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.MultiAP.SteeringSummaryStats.BlacklistAttempts">BlacklistAttempts</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td>[<a href="#T.StatsCounter64">StatsCounter64</a>] Number of times a Blacklist steer was attempted.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.MultiAP.SteeringSummaryStats.BlacklistSuccesses">BlacklistSuccesses</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td>[<a href="#T.StatsCounter64">StatsCounter64</a>] Number of times an attempted Blacklist steer succeeded.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.MultiAP.SteeringSummaryStats.BlacklistFailures">BlacklistFailures</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td>[<a href="#T.StatsCounter64">StatsCounter64</a>] Number of times an attempted Blacklist steer failed.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.MultiAP.SteeringSummaryStats.BTMAttempts">BTMAttempts</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td>[<a href="#T.StatsCounter64">StatsCounter64</a>] Number of times a BTM (BSS Transition Management; 802.11k) steer was attempted.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.MultiAP.SteeringSummaryStats.BTMSuccesses">BTMSuccesses</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td>[<a href="#T.StatsCounter64">StatsCounter64</a>] Number of times an attempted BTM (BSS Transition Management; 802.11k) steer succeeded.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.MultiAP.SteeringSummaryStats.BTMFailures">BTMFailures</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td>[<a href="#T.StatsCounter64">StatsCounter64</a>] Number of times an attempted BTM (BSS Transition Management; 802.11k) steer failed.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.MultiAP.SteeringSummaryStats.BTMQueryResponses">BTMQueryResponses</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td>[<a href="#T.StatsCounter64">StatsCounter64</a>] Number of asynchronous BTM (BSS Transition Management; 802.11k) Queries for which a BTM Request was issued.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="object inserted">
<td><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.">Device.WiFi.MultiAP.APDevice.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>Each instance of this object represents an individual Access Point device in the Wi-Fi network.</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.WiFi.MultiAP.APDevice.MACAddress"><em>MACAddress</em></a>.</p></td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.MACAddress">MACAddress</span></td>
<td><span title="MACAddress">string(:17)</span></td>
<td>R</td>
<td>[<a href="#T.MACAddress">MACAddress</a>] A unique identifier for this particular device within the Wi-Fi network.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Manufacturer">Manufacturer</span></td>
<td>string</td>
<td>R</td>
<td>The manufacturer of the Access Point device (human readable string).</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.ManufacturerOUI">ManufacturerOUI</span></td>
<td>string(6)</td>
<td>R</td>
<td><p>Organizationally unique identifier of the Access Point device manufacturer. Represented as a six hexadecimal-digit value using all upper-case letters and including any leading zeros. Possible patterns:</p>

<ul>
<li><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.ManufacturerOUI.0-9A-F6"><code>[0-9A-F]{6}</code></span>
The value MUST be a valid OUI as defined in [<a href="#R.OUI">OUI</a>].
This value MUST remain fixed over the lifetime of the device, including across firmware updates.</li></ul></td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.ProductClass">ProductClass</span></td>
<td>string(:64)</td>
<td>R</td>
<td>Identifier of the class of product for which the serial number applies. That is, for a given manufacturer, this parameter is used to identify the product or class of product over which the <a href="#D.Device:2.Device.WiFi.MultiAP.APDevice.SerialNumber"><em>SerialNumber</em></a> parameter is unique.
This value MUST remain fixed over the lifetime of the device, including across firmware updates. Any change would indicate that it’s a new device and would therefore require a BOOTSTRAP Inform.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.SerialNumber">SerialNumber</span></td>
<td>string(:64)</td>
<td>R</td>
<td>Identifier of the particular Access Point device that is unique for the indicated class of product and manufacturer.
This value MUST remain fixed over the lifetime of the device, including across firmware updates. Any change would indicate that it’s a new device and would therefore require a BOOTSTRAP Inform.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.SoftwareVersion">SoftwareVersion</span></td>
<td>string(:64)</td>
<td>R</td>
<td>A string identifying the software version currently installed in the Access Point device (i.e. version of the overall firmware).
To allow version comparisons, this element SHOULD be in the form of dot-delimited integers, where each successive integer represents a more minor category of variation. For example, <em>3.0.21</em> where the components mean: <em>Major.Minor.Build</em>.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.LastContactTime">LastContactTime</span></td>
<td>dateTime</td>
<td>R</td>
<td>The last time that the Access Point device was contacted via the Multi-AP control protocol.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.AssocIEEE1905DeviceRef">AssocIEEE1905DeviceRef</span></td>
<td>string</td>
<td>R</td>
<td>The value MUST be the Path Name of a row in the <a href="#D.Device:2.Device.IEEE1905.AL.NetworkTopology.IEEE1905Device."><em>IEEE1905.AL.NetworkTopology.IEEE1905Device.</em></a> table. If the referenced object is deleted, the parameter value MUST be set to an empty string. <em>AssocIEEE1905DeviceRef</em> is a reference to the IEEE 1905.1 Network Topology Device. Since IEEE 1905.1 is a common protocol used by Multi-AP Controllers for communications, this parameter allows the MultiAP portion of the data model to reference the associated IEEE 1905.1 portion of the data model.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.BackhaulLinkType">BackhaulLinkType</span></td>
<td>string</td>
<td>R</td>
<td><p>The medium being used to backhaul this Access Point Device to the Multi-AP Controller. The <a href="#D.Device:2.Device.WiFi.MultiAP.APDevice.BackhaulLinkType.None"><em>None</em></a> value is reserved for the <a href="#D.Device:2.Device.WiFi.MultiAP.APDevice."><em>APDevice</em></a> instance that represents the Multi-AP Controller. Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.BackhaulLinkType.None"><em>None</em></span></li>
<li><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.BackhaulLinkType.Wi-Fi"><em>Wi-Fi</em></span></li>
<li><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.BackhaulLinkType.MoCA"><em>MoCA</em></span></li>
<li><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.BackhaulLinkType.Ethernet"><em>Ethernet</em></span></li>
<li><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.BackhaulLinkType.G.hn"><em>G.hn</em></span></li>
<li><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.BackhaulLinkType.HPNA"><em>HPNA</em></span></li>
<li><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.BackhaulLinkType.HomePlug"><em>HomePlug</em></span></li>
<li><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.BackhaulLinkType.UPA"><em>UPA</em></span></li></ul></td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.BackhaulMACAddress">BackhaulMACAddress</span></td>
<td><span title="MACAddress">string(:17)</span></td>
<td>R</td>
<td>[<a href="#T.MACAddress">MACAddress</a>] The MAC Address of the Device on the network that is providing a Backhaul Link for this Access Point Device.
The an empty string value is reserved for the <a href="#D.Device:2.Device.WiFi.MultiAP.APDevice."><em>APDevice</em></a> instance that represents the Multi-AP Controller.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.BackhaulBytesSent">BackhaulBytesSent</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td>[<a href="#T.StatsCounter64">StatsCounter64</a>] The total number of bytes transmitted across the backhaul medium (as identified by the value of the <a href="#D.Device:2.Device.WiFi.MultiAP.APDevice.BackhaulLinkType"><em>BackhaulLinkType</em></a> parameter), including framing characters.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.BackhaulBytesReceived">BackhaulBytesReceived</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td>[<a href="#T.StatsCounter64">StatsCounter64</a>] The total number of bytes received across the backhaul medium (as identified by the value of the <a href="#D.Device:2.Device.WiFi.MultiAP.APDevice.BackhaulLinkType"><em>BackhaulLinkType</em></a> parameter), including framing characters.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.BackhaulLinkUtilization">BackhaulLinkUtilization</span></td>
<td>unsignedInt(:100)</td>
<td>R</td>
<td>Current utilization (expressed in <em>%</em>) of the medium (as identified by the value of the <a href="#D.Device:2.Device.WiFi.MultiAP.APDevice.BackhaulLinkType"><em>BackhaulLinkType</em></a> parameter) being used to backhaul this Access Point device to the Multi-AP Controller. A value of 0 is used for the <a href="#D.Device:2.Device.WiFi.MultiAP.APDevice."><em>APDevice</em></a> instance that represents the Access Point on the Multi-AP Controller.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.BackhaulSignalStrength">BackhaulSignalStrength</span></td>
<td>unsignedInt(:255)</td>
<td>R</td>
<td>An indicator of radio signal strength of the backhaul link of the Access Point (AP) to the Multi-AP Controller, measured in <em>dBm</em>. RCPI threshold is encoded per Table 9-154 of [<a href="#R.802.11-2016">802.11-2016</a>]. The value of this parameter is indeterminate if the value of the <a href="#D.Device:2.Device.WiFi.MultiAP.APDevice.BackhaulLinkType"><em>BackhaulLinkType</em></a> parameter is anything other than <a href="#D.Device:2.Device.WiFi.MultiAP.APDevice.BackhaulLinkType.Wi-Fi"><em>Wi-Fi</em></a>.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.RadioNumberOfEntries">RadioNumberOfEntries</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>The number of entries in the <a href="#D.Device:2.Device.WiFi.MultiAP.APDevice.Radio."><em>Radio</em></a> table.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="object inserted">
<td><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.">Device.WiFi.MultiAP.APDevice.{i}.Radio.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>This object represents all of the individual Radios contained within the identified Access Point device known to the controller.</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.MACAddress"><em>MACAddress</em></a>.</p></td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.MACAddress">MACAddress</span></td>
<td><span title="MACAddress">string(:17)</span></td>
<td>R</td>
<td>[<a href="#T.MACAddress">MACAddress</a>] A unique identifier for this particular Radio within the identified Access Point.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.OperatingFrequencyBand">OperatingFrequencyBand</span></td>
<td>string</td>
<td>R</td>
<td><p>Indicates the frequency band at which the radio is operating. Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.OperatingFrequencyBand.2.4GHz"><em>2.4GHz</em></span></li>
<li><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.OperatingFrequencyBand.5GHz"><em>5GHz</em></span></li></ul></td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.OperatingStandards">OperatingStandards</span></td>
<td>string[]</td>
<td>R</td>
<td><p>Comma-separated list of strings. List items indicate which IEEE 802.11 standard this <a href="#D.Device:2.Device.WiFi.MultiAP.APDevice.Radio."><em>Radio</em></a> instance is configured for. Each list item is an enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.OperatingStandards.a"><em>a</em></span> ([<a href="#R.802.11a-1999">802.11a-1999</a>])</li>
<li><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.OperatingStandards.b"><em>b</em></span> ([<a href="#R.802.11b-1999">802.11b-1999</a>])</li>
<li><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.OperatingStandards.g"><em>g</em></span> ([<a href="#R.802.11g-2003">802.11g-2003</a>])</li>
<li><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.OperatingStandards.n"><em>n</em></span> ([<a href="#R.802.11n-2009">802.11n-2009</a>])</li>
<li><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.OperatingStandards.ac"><em>ac</em></span> ([<a href="#R.802.11ac-2013">802.11ac-2013</a>])</li>
<li><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.OperatingStandards.ax"><em>ax</em></span> ([<a href="#R.802.11ax">802.11ax</a>])
Each value indicates support for the indicated standard.
If <a href="#D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.OperatingFrequencyBand"><em>OperatingFrequencyBand</em></a> is set to <a href="#D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.OperatingFrequencyBand.2.4GHz"><em>2.4GHz</em></a>, only values <a href="#D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.OperatingStandards.b"><em>b</em></a>, <a href="#D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.OperatingStandards.g"><em>g</em></a>, <a href="#D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.OperatingStandards.n"><em>n</em></a>, <a href="#D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.OperatingStandards.ax"><em>ax</em></a> are applicable.
If <a href="#D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.OperatingFrequencyBand"><em>OperatingFrequencyBand</em></a> is set to <a href="#D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.OperatingFrequencyBand.5GHz"><em>5GHz</em></a>, only values <a href="#D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.OperatingStandards.a"><em>a</em></a>, <a href="#D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.OperatingStandards.n"><em>n</em></a>, <a href="#D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.OperatingStandards.ac"><em>ac</em></a>, <a href="#D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.OperatingStandards.ax"><em>ax</em></a> are applicable.
For example, a value of &ldquo;g,b&rdquo; (or &ldquo;b,g&rdquo; - order is not important) means that the 802.11g standard [<a href="#R.802.11g-2003">802.11g-2003</a>] is used with a backwards-compatible mode for 802.11b [<a href="#R.802.11b-1999">802.11b-1999</a>]. A value of &ldquo;g&rdquo; means that only the 802.11g standard is in use.</li></ul></td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.Channel">Channel</span></td>
<td>unsignedInt(1:255)</td>
<td>R</td>
<td>The current radio channel used by the connection.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.ExtensionChannel">ExtensionChannel</span></td>
<td>string</td>
<td>R</td>
<td><p>The secondary extension channel position, applicable when operating in wide channel mode (i.e. when <a href="#D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.CurrentOperatingChannelBandwidth"><em>CurrentOperatingChannelBandwidth</em></a> is <a href="#D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.CurrentOperatingChannelBandwidth.40MHz"><em>40MHz</em></a>
If not operating in wide channel mode (i.e. when <a href="#D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.CurrentOperatingChannelBandwidth"><em>CurrentOperatingChannelBandwidth</em></a> is something other than <a href="#D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.CurrentOperatingChannelBandwidth.40MHz"><em>40MHz</em></a>, then the value of <em>ExtensionChannel</em> is <a href="#D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.ExtensionChannel.None"><em>None</em></a>. Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.ExtensionChannel.None"><em>None</em></span></li>
<li><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.ExtensionChannel.AboveControlChannel"><em>AboveControlChannel</em></span></li>
<li><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.ExtensionChannel.BelowControlChannel"><em>BelowControlChannel</em></span></li></ul></td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.CurrentOperatingChannelBandwidth">CurrentOperatingChannelBandwidth</span></td>
<td>string</td>
<td>R</td>
<td><p>The channel bandwidth currently in use. Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.CurrentOperatingChannelBandwidth.20MHz"><em>20MHz</em></span></li>
<li><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.CurrentOperatingChannelBandwidth.40MHz"><em>40MHz</em></span></li>
<li><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.CurrentOperatingChannelBandwidth.80MHz"><em>80MHz</em></span></li>
<li><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.CurrentOperatingChannelBandwidth.160MHz"><em>160MHz</em></span></li></ul></td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.MCS">MCS</span></td>
<td>int(0:31,16:31)</td>
<td>R</td>
<td>The Modulation Coding Scheme index (applicable to 802.11n and 802.11ac specifications only). Values from 0 to 15 MUST be supported ([<a href="#R.802.11n-2009">802.11n-2009</a>]). Values from 0 to 9 MUST be supported for [<a href="#R.802.11ac-2013">802.11ac-2013</a>].</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.TransmitPower">TransmitPower</span></td>
<td>int(-1:100)</td>
<td>R</td>
<td>Indicates the current transmit power level as a <em>percentage</em> of full power.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.APNumberOfEntries">APNumberOfEntries</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>The number of entries in the <a href="#D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.AP."><em>AP</em></a> table.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="object inserted">
<td><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.AP.">Device.WiFi.MultiAP.APDevice.{i}.Radio.{i}.AP.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>A single logical Access Point operating on this radio.</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.AP.BSSID"><em>BSSID</em></a>.</p></td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.AP.BSSID">BSSID</span></td>
<td><span title="MACAddress">string(:17)</span></td>
<td>R</td>
<td>[<a href="#T.MACAddress">MACAddress</a>] The MAC Address of the logical BSS (BSSID).</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.AP.SSID">SSID</span></td>
<td>string</td>
<td>R</td>
<td>The SSID in use for this BSS.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.AP.BlacklistAttempts">BlacklistAttempts</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td>[<a href="#T.StatsCounter64">StatsCounter64</a>] Number of times a Blacklist steer was attempted for this Access Point.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.AP.BTMAttempts">BTMAttempts</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td>[<a href="#T.StatsCounter64">StatsCounter64</a>] Number of times a BTM (BSS Transition Management; 802.11k) steer was attempted for this Access Point.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.AP.BTMQueryResponses">BTMQueryResponses</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td>[<a href="#T.StatsCounter64">StatsCounter64</a>] Number of asynchronous BTM (BSS Transition Management; 802.11k) Queries for which a BTM Request was issued by this Access Point.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.AP.AssociatedDeviceNumberOfEntries">AssociatedDeviceNumberOfEntries</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>The number of entries in the <a href="#D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.AP.AssociatedDevice."><em>AssociatedDevice</em></a> table.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="object inserted">
<td><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.AP.AssociatedDevice.">Device.WiFi.MultiAP.APDevice.{i}.Radio.{i}.AP.{i}.AssociatedDevice.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>Object describing a single Associated Device (STA).</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.AP.AssociatedDevice.MACAddress"><em>MACAddress</em></a>.</p></td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.AP.AssociatedDevice.MACAddress">MACAddress</span></td>
<td><span title="MACAddress">string(:17)</span></td>
<td>R</td>
<td>[<a href="#T.MACAddress">MACAddress</a>] The MAC address of an associated device.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.AP.AssociatedDevice.OperatingStandard">OperatingStandard</span></td>
<td>string</td>
<td>R</td>
<td><p>The operating standard that this associated device is connected with. Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.AP.AssociatedDevice.OperatingStandard.a"><em>a</em></span> ([<a href="#R.802.11a-1999">802.11a-1999</a>])</li>
<li><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.AP.AssociatedDevice.OperatingStandard.b"><em>b</em></span> ([<a href="#R.802.11b-1999">802.11b-1999</a>])</li>
<li><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.AP.AssociatedDevice.OperatingStandard.g"><em>g</em></span> ([<a href="#R.802.11g-2003">802.11g-2003</a>])</li>
<li><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.AP.AssociatedDevice.OperatingStandard.n"><em>n</em></span> ([<a href="#R.802.11n-2009">802.11n-2009</a>])</li>
<li><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.AP.AssociatedDevice.OperatingStandard.ac"><em>ac</em></span> ([<a href="#R.802.11ac-2013">802.11ac-2013</a>])</li>
<li><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.AP.AssociatedDevice.OperatingStandard.ax"><em>ax</em></span> ([<a href="#R.802.11ax">802.11ax</a>])</li></ul></td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.AP.AssociatedDevice.Active">Active</span></td>
<td>boolean</td>
<td>R</td>
<td>Whether or not this associated device is currently present on the Wi-Fi Access Point device.
The ability to list inactive nodes is OPTIONAL. If the Access Point devices includes inactive nodes in this table, <em>Active</em> MUST be set to <em>false</em> for each inactive node. The length of time an inactive node remains listed in this table is a local matter to the CPE.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.AP.AssociatedDevice.AssociationTime">AssociationTime</span></td>
<td>dateTime</td>
<td>R</td>
<td>Date and time in UTC when the device was associated.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.AP.AssociatedDevice.LastDataDownlinkRate">LastDataDownlinkRate</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>The data transmit rate in <em>kbps</em> that was most recently used for transmission of data from the access point to the associated device.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.AP.AssociatedDevice.LastDataUplinkRate">LastDataUplinkRate</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>The data transmit rate in <em>kbps</em> that was most recently used for transmission of data from the associated device to the access point.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.AP.AssociatedDevice.SignalStrength">SignalStrength</span></td>
<td>unsignedInt(:255)</td>
<td>R</td>
<td>An indicator of radio signal strength of the uplink from the Associated Device (STA) to the Access Point (AP) measured in <em>dBm</em>. RCPI threshold is encoded per Table 9-154 of [<a href="#R.802.11-2016">802.11-2016</a>].</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.AP.AssociatedDevice.Noise">Noise</span></td>
<td>unsignedInt(:255)</td>
<td>R</td>
<td>An indicator of the average radio noise plus interference power measured on the uplink from the Associated Device (STA) to the Access Point (AP).
Encoded as defined for ANPI in [<a href="#R.802.11-2016">Section 10.11.9.4/802.11-2016</a>].</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.AP.AssociatedDevice.SteeringHistoryNumberOfEntries">SteeringHistoryNumberOfEntries</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>The number of entries in the <a href="#D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.AP.AssociatedDevice.SteeringHistory."><em>SteeringHistory</em></a> table.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="object inserted">
<td><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.AP.AssociatedDevice.Stats.">Device.WiFi.MultiAP.APDevice.{i}.Radio.{i}.AP.{i}.AssociatedDevice.{i}.Stats.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>Object describing the Statistics for a single Associated Device (STA).</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.AP.AssociatedDevice.Stats.BytesSent">BytesSent</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td>[<a href="#T.StatsCounter64">StatsCounter64</a>] The total number of bytes transmitted to the Associated Device.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.AP.AssociatedDevice.Stats.BytesReceived">BytesReceived</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td>[<a href="#T.StatsCounter64">StatsCounter64</a>] The total number of bytes received from the Associated Device.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.AP.AssociatedDevice.Stats.PacketsSent">PacketsSent</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td>[<a href="#T.StatsCounter64">StatsCounter64</a>] The total number of packets transmitted to the Associated Device.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.AP.AssociatedDevice.Stats.PacketsReceived">PacketsReceived</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td>[<a href="#T.StatsCounter64">StatsCounter64</a>] The total number of packets received from the Associated Device.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.AP.AssociatedDevice.Stats.ErrorsSent">ErrorsSent</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td>[<a href="#T.StatsCounter64">StatsCounter64</a>] The total number of outbound packets that could not be transmitted because of errors. These might be due to the number of retransmissions exceeding the retry limit, or from other causes.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.AP.AssociatedDevice.Stats.ErrorsReceived">ErrorsReceived</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td>[<a href="#T.StatsCounter64">StatsCounter64</a>] The total number of inbound packets that contained errors preventing them from being delivered to a higher-layer protocol.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.AP.AssociatedDevice.Stats.RetransCount">RetransCount</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td>[<a href="#T.StatsCounter64">StatsCounter64</a>] The total number of transmitted packets which were retransmissions. Two retransmissions of the same packet results in this counter incrementing by two.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="object inserted">
<td><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.AP.AssociatedDevice.SteeringSummaryStats.">Device.WiFi.MultiAP.APDevice.{i}.Radio.{i}.AP.{i}.AssociatedDevice.{i}.SteeringSummaryStats.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>The summary of statistics related to Multi-AP Steering for an individual STA on the Wi-Fi network.
The counters contained in <em>SteeringSummaryStats</em> are all reset on reboot.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.AP.AssociatedDevice.SteeringSummaryStats.NoCandidateAPFailures">NoCandidateAPFailures</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td>[<a href="#T.StatsCounter64">StatsCounter64</a>] Number of times this Associated Device should have been steered but wasn’t because a better candidate AP couldn’t be found.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.AP.AssociatedDevice.SteeringSummaryStats.BlacklistAttempts">BlacklistAttempts</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td>[<a href="#T.StatsCounter64">StatsCounter64</a>] Number of times a Blacklist steer was attempted on this Associated Device.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.AP.AssociatedDevice.SteeringSummaryStats.BlacklistSuccesses">BlacklistSuccesses</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td>[<a href="#T.StatsCounter64">StatsCounter64</a>] Number of times an attempted Blacklist steer succeeded for this Associated Device.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.AP.AssociatedDevice.SteeringSummaryStats.BlacklistFailures">BlacklistFailures</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td>[<a href="#T.StatsCounter64">StatsCounter64</a>] Number of times an attempted Blacklist steer failed for this Associated Device.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.AP.AssociatedDevice.SteeringSummaryStats.BTMAttempts">BTMAttempts</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td>[<a href="#T.StatsCounter64">StatsCounter64</a>] Number of times a BTM (BSS Transition Management; 802.11k) steer was attempted on this Associated Device.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.AP.AssociatedDevice.SteeringSummaryStats.BTMSuccesses">BTMSuccesses</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td>[<a href="#T.StatsCounter64">StatsCounter64</a>] Number of times an attempted BTM (BSS Transition Management; 802.11k) steer succeeded for this Associated Device.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.AP.AssociatedDevice.SteeringSummaryStats.BTMFailures">BTMFailures</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td>[<a href="#T.StatsCounter64">StatsCounter64</a>] Number of times an attempted BTM (BSS Transition Management; 802.11k) steer failed for this Associated Device.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.AP.AssociatedDevice.SteeringSummaryStats.BTMQueryResponses">BTMQueryResponses</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td>[<a href="#T.StatsCounter64">StatsCounter64</a>] Number of asynchronous BTM (BSS Transition Management; 802.11k) Queries for which a BTM Request was issued to this Associated Device.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.AP.AssociatedDevice.SteeringSummaryStats.LastSteerTime">LastSteerTime</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>The number of <em>seconds</em> since this Associated Device was last attempted to be steered.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="object inserted">
<td><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.AP.AssociatedDevice.SteeringHistory.">Device.WiFi.MultiAP.APDevice.{i}.Radio.{i}.AP.{i}.AssociatedDevice.{i}.SteeringHistory.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>The history of Multi-AP Steering for an individual STA on the Wi-Fi network.
The contents of this multi-instance object are reset on reboot.</p>

<p>At most one entry in this table can exist with the same values for all of <a href="#D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.AP.AssociatedDevice.SteeringHistory.Time"><em>Time</em></a>, <a href="#D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.AP.AssociatedDevice.SteeringHistory.APOrigin"><em>APOrigin</em></a> and <a href="#D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.AP.AssociatedDevice.SteeringHistory.APDestination"><em>APDestination</em></a>.</p></td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.AP.AssociatedDevice.SteeringHistory.Time">Time</span></td>
<td>dateTime</td>
<td>R</td>
<td>The date/time when steering was initiated for the Associated Device.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.AP.AssociatedDevice.SteeringHistory.APOrigin">APOrigin</span></td>
<td>string</td>
<td>R</td>
<td>The BSSID of the Access Point that initiated the steering.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.AP.AssociatedDevice.SteeringHistory.TriggerEvent">TriggerEvent</span></td>
<td>string</td>
<td>R</td>
<td><p>The type of event that caused the steering to be initiaited. Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.AP.AssociatedDevice.SteeringHistory.TriggerEvent.Unknown"><em>Unknown</em></span></li>
<li><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.AP.AssociatedDevice.SteeringHistory.TriggerEvent.Wi-FiChannelUtilization"><em>Wi-Fi Channel Utilization</em></span></li>
<li><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.AP.AssociatedDevice.SteeringHistory.TriggerEvent.Wi-FiLinkQuality"><em>Wi-Fi Link Quality</em></span></li>
<li><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.AP.AssociatedDevice.SteeringHistory.TriggerEvent.BackhaulLinkUtilization"><em>Backhaul Link Utilization</em></span>
NOTE: This might be Unknown for BTM Query Response steers.</li></ul></td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.AP.AssociatedDevice.SteeringHistory.SteeringApproach">SteeringApproach</span></td>
<td>string</td>
<td>R</td>
<td><p>The type of steering that was attempted. Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.AP.AssociatedDevice.SteeringHistory.SteeringApproach.Blacklist"><em>Blacklist</em></span></li>
<li><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.AP.AssociatedDevice.SteeringHistory.SteeringApproach.BTMRequest"><em>BTM Request</em></span></li>
<li><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.AP.AssociatedDevice.SteeringHistory.SteeringApproach.AsyncBTMQuery"><em>Async BTM Query</em></span></li></ul></td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.AP.AssociatedDevice.SteeringHistory.APDestination">APDestination</span></td>
<td>string</td>
<td>R</td>
<td>The BSSID of the destination Access Point of a successful steer.
A failed steering attempt will leave this parameter an empty string.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.AP.AssociatedDevice.SteeringHistory.SteeringDuration">SteeringDuration</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>The amount of time in <em>seconds</em> required for the steer to complete successfully.
A failed steering attempt will leave this parameter 0.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="object inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.">Device.WiFi.DataElements.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object represents the Wi-Fi Alliance Data Elements as defined in [<a href="#R.DataElements-v1.0">DataElements-v1.0</a>].</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="object inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.">Device.WiFi.DataElements.Network.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object describes a Wi-Fi network containing 1 or more Access Point devices.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.ID">ID</span></td>
<td>string</td>
<td>W</td>
<td>A unique identifier for this particular Wi-Fi network.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.TimeStamp">TimeStamp</span></td>
<td>string</td>
<td>R</td>
<td>The time this group was collected.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.ControllerID">ControllerID</span></td>
<td>string</td>
<td>W</td>
<td>A unique identifier for a Multi-AP controller.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.DeviceNumberOfEntries">DeviceNumberOfEntries</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>The number of entries in the <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device."><em>Device</em></a> table.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="object inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.">Device.WiFi.DataElements.Network.Device.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>Each instance of this object represents an individual Access Point device in the Wi-Fi network.</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.ID"><em>ID</em></a>.</p></td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.ID">ID</span></td>
<td><span title="MACAddress">string(:17)</span></td>
<td>R</td>
<td>[<a href="#T.MACAddress">MACAddress</a>] A unique identifier for this particular device within the Wi-Fi network as defined in [<a href="#R.DataElements-v1.0">Section 3.1/DataElements-v1.0</a>].</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.MultiAPCapabilities">MultiAPCapabilities</span></td>
<td>base64(1)</td>
<td>R</td>
<td>The Multi-AP capabilities supported by this device as defined by the APCapability TLV in [<a href="#R.MAPv1.0">Section 17.2.6/MAPv1.0</a>].</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.CollectionInterval">CollectionInterval</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>The interval between the collection of consecutive measurements of the most frequently updated Data Element from this device in <em>milliseconds</em>.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.RadioNumberOfEntries">RadioNumberOfEntries</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>The number of entries in the <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio."><em>Radio</em></a> table.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="object inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.">Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>This object represents all of the individual Radios contained within the identified Access Point device known to the controller.</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.ID"><em>ID</em></a>.</p></td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.ID">ID</span></td>
<td>base64(6)</td>
<td>R</td>
<td>A unique identifier for this particular Radio within the identified Access Point as defined in [<a href="#R.DataElements-v1.0">Section 3.1/DataElements-v1.0</a>].</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.Enabled">Enabled</span></td>
<td>boolean</td>
<td>R</td>
<td>Indicates whether this radio is enabled or disabled.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.Noise">Noise</span></td>
<td>unsignedInt(:255)</td>
<td>R</td>
<td>An indicator of the average radio noise plus interference power measured for the primary operating channel.
Encoded as defined for ANPI in [<a href="#R.802.11-2016">Section 11.11.9.4/802.11-2016</a>].</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.Utilization">Utilization</span></td>
<td>unsignedInt(0:255)</td>
<td>R</td>
<td>(Total Channel Utililzation) The percentage of time (linearly scaled with 255 representing 100%) that the Access Point device sensed the medium was busy, as indicated by either the physical or virtual carier sense (CS) mechanism. This is essentially the amount of time spent transmiting (both successful and failed transmissions), receiving (both local and non-local transmissions), and processing noise.
When more than one channel is in use for the BSS operating on the radio, the <em>Utilization</em> value is calculated only for the primary channel.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.Transmit">Transmit</span></td>
<td>unsignedInt(0:255)</td>
<td>R</td>
<td>(Transmit Channel Utilization) The percentage of time (linearly scaled with 255 representing 100%) that the radio has spent on sending individually or group addressed transmissions (successful and failed).
When more than one channel is in use for the BSS operating on the radio, the <em>Transmit</em> value is calculated only for the primary channel.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.ReceiveSelf">ReceiveSelf</span></td>
<td>unsignedInt(:255)</td>
<td>R</td>
<td>(Receive Local Channel Utilization) The percentage of time (linearly scaled with 255 representing 100%) that the radio has spent on receiving individually or group addressed local transmissions (i.e. transmissions from any STA associated with any BSS operating on this radio).
When more than one channel is in use for the BSS operating on the radio, the <em>ReceiveSelf</em> value is calculated only for the primary channel.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.ReceiveOther">ReceiveOther</span></td>
<td>unsignedInt(0:255)</td>
<td>R</td>
<td>(Receive Non-Local Channel Utilization) The percentage of time (linearly scaled with 255 representing 100%) that the radio has spent on receiving individually or group addressed non-local transmissions (i.e. valid IEEE 802.11 PPDUs that are not associated with any BSS operatin gon this radio).
When more than one channel is in use for the BSS operating on the radio, the <em>ReceiveOther</em> value is calculated only for the primary channel.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.CurrentOperatingClassProfileNumberOfEntries">CurrentOperatingClassProfileNumberOfEntries</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>The number of entries in the <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.CurrentOperatingClassProfile."><em>CurrentOperatingClassProfile</em></a> table.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.UnassociatedSTANumberOfEntries">UnassociatedSTANumberOfEntries</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>The number of entries in the <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.UnassociatedSTA."><em>UnassociatedSTA</em></a> table.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSSNumberOfEntries">BSSNumberOfEntries</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>The number of entries in the <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS."><em>BSS</em></a> table.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.ScanResultNumberOfEntries">ScanResultNumberOfEntries</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>The number of entries in the <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.ScanResult."><em>ScanResult</em></a> table.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="object inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BackhaulSta.">Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BackhaulSta.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>Contains the MACAddress of the STA on this radio providing Wi-Fi backhaul to this device.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BackhaulSta.MACAddress">MACAddress</span></td>
<td><span title="MACAddress">string(:17)</span></td>
<td>R</td>
<td>[<a href="#T.MACAddress">MACAddress</a>] The MAC address of the logical STA sharing the radio for Wi-Fi backhaul.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="object inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.Capabilities.">Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.Capabilities.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object represents the capabilities of the radio which may be different from the current operational configuration.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.Capabilities.HTCapabilities">HTCapabilities</span></td>
<td>base64(1)</td>
<td>R</td>
<td>Describes the HT capabilities of the radio as defined by the HTCapabilities TLV [<a href="#R.MAPv1.0">Section 17.2.8/MAPv1.0</a>].</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.Capabilities.VHTCapabilities">VHTCapabilities</span></td>
<td>base64(2:6)</td>
<td>R</td>
<td>Describes the VHT capabilities of the radio as defined by the VHTCapabilities TLV [<a href="#R.MAPv1.0">Section 17.2.9/MAPv1.0</a>].</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.Capabilities.HECapabilities">HECapabilities</span></td>
<td>base64(4:14)</td>
<td>R</td>
<td>Describes the HE capabilities of the radio as defined by the HECapabilities TLV [<a href="#R.MAPv1.0">Section 17.2.10/MAPv1.0</a>].</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.Capabilities.CapableOperatingClassProfileNumberOfEntries">CapableOperatingClassProfileNumberOfEntries</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>The number of entries in the <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.Capabilities.CapableOperatingClassProfile."><em>CapableOperatingClassProfile</em></a> table.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="object inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.Capabilities.CapableOperatingClassProfile.">Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.Capabilities.CapableOperatingClassProfile.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>Describes one of the possible Operating Classes supported by this Radio.</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.Capabilities.CapableOperatingClassProfile.Class"><em>Class</em></a>.</p></td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.Capabilities.CapableOperatingClassProfile.Class">Class</span></td>
<td>unsignedInt(:255)</td>
<td>R</td>
<td>The Operating Class per Table E-4 in [<a href="#R.802.11-2016">802.11-2016</a>] that this radio is capable of operating on.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.Capabilities.CapableOperatingClassProfile.MaxTxPower">MaxTxPower</span></td>
<td>int(-127:127)</td>
<td>R</td>
<td>Maximum Transmit Power EIRP that this radio is capable of transmitting in the current regulatory domain for the Operating Class.
Represented as 2’s complement signed integer in units of decibels relative to 1 mW (<em>dBm</em>).</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.Capabilities.CapableOperatingClassProfile.NonOperable">NonOperable</span></td>
<td>unsignedInt(:255)[]</td>
<td>R</td>
<td>Comma-separated list of unsigned integers (up to 255). The channel numbers which are statically non-operable in the Operating Class (i.e. the Radio is never able to operate on these channels).
Other channels from this Operating Class which are not listed here are supported for the Radio.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.Capabilities.CapableOperatingClassProfile.NumberOfNonOperChan">NumberOfNonOperChan</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>The number of non-operable channels contained in <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.Capabilities.CapableOperatingClassProfile.NonOperable"><em>NonOperable</em></a>.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="object inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.CurrentOperatingClassProfile.">Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.CurrentOperatingClassProfile.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>Describes one of the current Operating Classes in use by this Radio. One Opeating Class is indicated for each current Operating Channel Bandwidth.
The Channel indicated for the 20 MHz Operating Class is equal to the current primary channel.</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.CurrentOperatingClassProfile.Class"><em>Class</em></a>.</p></td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.CurrentOperatingClassProfile.Class">Class</span></td>
<td>unsignedInt(:255)</td>
<td>R</td>
<td>The Operating Class per Table E-4 in [<a href="#R.802.11-2016">802.11-2016</a>] that this radio is currently operating on.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.CurrentOperatingClassProfile.Channel">Channel</span></td>
<td>unsignedInt(:255)</td>
<td>R</td>
<td>This Channel number in the Operating Class that this Radio is currently operating on.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.CurrentOperatingClassProfile.TxPower">TxPower</span></td>
<td>int(-127:127)</td>
<td>R</td>
<td>Nominal Transmit Power EIRP that this radio is currently using for the current Channel in the Opeating Class.
Represented as 2’s complement signed integer in units of decibels relative to 1 mW (<em>dBm</em>).</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.CurrentOperatingClassProfile.TimeStamp">TimeStamp</span></td>
<td>string</td>
<td>R</td>
<td>The time this group was collected.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="object inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.">Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>A single logical BSS operating on this radio.</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.BSSID"><em>BSSID</em></a>.</p></td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.BSSID">BSSID</span></td>
<td><span title="MACAddress">string(:17)</span></td>
<td>R</td>
<td>[<a href="#T.MACAddress">MACAddress</a>] The MAC Address of the logical BSS (BSSID).</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.SSID">SSID</span></td>
<td>string</td>
<td>R</td>
<td>The SSID in use for this BSS.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.Enabled">Enabled</span></td>
<td>boolean</td>
<td>R</td>
<td>Whether the BSSID is currently enabled (beaconing frames are being sent) or disabled.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.LastChange">LastChange</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>Time in <em>seconds</em> since the last change to the <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.Enabled"><em>Enabled</em></a> value.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.TimeStamp">TimeStamp</span></td>
<td>string</td>
<td>R</td>
<td>The time this group was collected.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.UnicastBytesSent">UnicastBytesSent</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td>[<a href="#T.StatsCounter64">StatsCounter64</a>] Access Point (BSS) wide statistics for total unicast bytes transmitted.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.UnicastBytesReceived">UnicastBytesReceived</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td>[<a href="#T.StatsCounter64">StatsCounter64</a>] Access Point (BSS) wide statistics for total unicast bytes received.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.MulticastBytesSent">MulticastBytesSent</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td>[<a href="#T.StatsCounter64">StatsCounter64</a>] Access Point (BSS) wide statistics for total multicast bytes transmitted.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.MulticastBytesReceived">MulticastBytesReceived</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td>[<a href="#T.StatsCounter64">StatsCounter64</a>] Access Point (BSS) wide statistics for total multicast bytes received.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.BroadcastBytesSent">BroadcastBytesSent</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td>[<a href="#T.StatsCounter64">StatsCounter64</a>] Access Point (BSS) wide statistics for total broadcast bytes transmitted.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.BroadcastBytesReceived">BroadcastBytesReceived</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td>[<a href="#T.StatsCounter64">StatsCounter64</a>] Access Point (BSS) wide statistics for total broadcast bytes received.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.EstServiceParametersBE">EstServiceParametersBE</span></td>
<td>base64(0:3)</td>
<td>R</td>
<td>Estimated Service Parameters information field for AC=BE, defined per Figure 9-588 in [<a href="#R.802.11-2016">802.11-2016</a>] and referenced in [<a href="#R.MAPv1.0">Section 17.2.22/MAPv1.0</a>].</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.EstServiceParametersBK">EstServiceParametersBK</span></td>
<td>base64(0:3)</td>
<td>R</td>
<td>Estimated Service Parameters information field for AC=BK, defined per Figure 9-588 in [<a href="#R.802.11-2016">802.11-2016</a>] and referenced in [<a href="#R.MAPv1.0">Section 17.2.22/MAPv1.0</a>].</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.EstServiceParametersVI">EstServiceParametersVI</span></td>
<td>base64(0:3)</td>
<td>R</td>
<td>Estimated Service Parameters information field for AC=VI, defined per Figure 9-588 in [<a href="#R.802.11-2016">802.11-2016</a>] and referenced in [<a href="#R.MAPv1.0">Section 17.2.22/MAPv1.0</a>].</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.EstServiceParametersVO">EstServiceParametersVO</span></td>
<td>base64(0:3)</td>
<td>R</td>
<td>Estimated Service Parameters information field for AC=VO, defined per Figure 9-588 in [<a href="#R.802.11-2016">802.11-2016</a>] and referenced in [<a href="#R.MAPv1.0">Section 17.2.22/MAPv1.0</a>].</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.STANumberOfEntries">STANumberOfEntries</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>The number of entries in the <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.STA."><em>STA</em></a> table.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="object inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.STA.">Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.STA.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>Object describing a single Associated Device (STA).</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.STA.MACAddress"><em>MACAddress</em></a>.</p></td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.STA.MACAddress">MACAddress</span></td>
<td><span title="MACAddress">string(:17)</span></td>
<td>R</td>
<td>[<a href="#T.MACAddress">MACAddress</a>] The MAC address of an associated device.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.STA.TimeStamp">TimeStamp</span></td>
<td>string</td>
<td>R</td>
<td>The time this group was collected.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.STA.HTCapabilities">HTCapabilities</span></td>
<td>base64(1)</td>
<td>R</td>
<td>Describes the HT capabilities of the Associated Device (STA).</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.STA.VHTCapabilities">VHTCapabilities</span></td>
<td>base64(2:6)</td>
<td>R</td>
<td>Describes the VHT capabilities of the Associated Device (STA).</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.STA.HECapabilities">HECapabilities</span></td>
<td>base64(4:14)</td>
<td>R</td>
<td>Describes the HE capabilities of the Associated Device (STA).</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.STA.LastDataDownlinkRate">LastDataDownlinkRate</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>The data transmit rate in <em>kbps</em> that was most recently used for transmission of data from the access point to the associated device.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.STA.LastDataUplinkRate">LastDataUplinkRate</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>The data transmit rate in <em>kbps</em> that was most recently used for transmission of data from the associated device to the access point.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.STA.UtilizationReceive">UtilizationReceive</span></td>
<td>unsignedLong</td>
<td>R</td>
<td>The amount of time in <em>milliseconds</em> that the Radio has spent on the Channel receiving data from this Associated Device (STA).</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.STA.UtilizationTransmit">UtilizationTransmit</span></td>
<td>unsignedLong</td>
<td>R</td>
<td>The amount of time in <em>milliseconds</em> that the Radio has spent on the Channel transmitting data to this Associated Device (STA).</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.STA.EstMACDataRateDownlink">EstMACDataRateDownlink</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>Estimate of the MAC layer throughput in <em>Mbps</em> achievable in the downlink direction if 100% of channel airtime and BSS operating bandwidth were available, as defined in [<a href="#R.MAPv1.0">Section 10.3.1/MAPv1.0</a>].</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.STA.EstMACDataRateUplink">EstMACDataRateUplink</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>Estimate of the MAC layer throughput in <em>Mbps</em> achievable in the uplink direction if 100% of channel airtime and BSS operating bandwidth were available, as defined in [<a href="#R.MAPv1.0">Section 10.3.1/MAPv1.0</a>].</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.STA.SignalStrength">SignalStrength</span></td>
<td>unsignedInt(:255)</td>
<td>R</td>
<td>An indicator of radio signal strength of the uplink from the associated STA to the access point - measured in <em>dBm</em>. RCPI threshold (encoded per Table 9-154 of [<a href="#R.802.11-2016">802.11-2016</a>], and described in 10.3.1 of [<a href="#R.MAPv1.0">MAPv1.0</a>]). Reserved: 221 - 255.
NOTE: The underlying WFA specification is in the process of being reviewed for possible clarification. Please refer to that specification for more details.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.STA.LastConnectTime">LastConnectTime</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>The time in <em>seconds</em> since this Assocated Device (STA) was associated.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.STA.BytesSent">BytesSent</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td>[<a href="#T.StatsCounter64">StatsCounter64</a>] The total number of bytes transmitted to the Associated Device.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.STA.BytesReceived">BytesReceived</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td>[<a href="#T.StatsCounter64">StatsCounter64</a>] The total number of bytes received from the Associated Device.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.STA.PacketsSent">PacketsSent</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td>[<a href="#T.StatsCounter64">StatsCounter64</a>] The total number of packets transmitted to the Associated Device.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.STA.PacketsReceived">PacketsReceived</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td>[<a href="#T.StatsCounter64">StatsCounter64</a>] The total number of packets received from the Associated Device.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.STA.ErrorsSent">ErrorsSent</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td>[<a href="#T.StatsCounter64">StatsCounter64</a>] The total number of outbound packets that could not be transmitted because of errors. These might be due to the number of retransmissions exceeding the retry limit, or from other causes.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.STA.ErrorsReceived">ErrorsReceived</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td>[<a href="#T.StatsCounter64">StatsCounter64</a>] The total number of inbound packets that contained errors preventing them from being delivered to a higher-layer protocol.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.STA.RetransCount">RetransCount</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td>[<a href="#T.StatsCounter64">StatsCounter64</a>] The total number of transmitted packets which were retransmissions. Two retransmissions of the same packet results in this counter incrementing by two.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.STA.MeasurementReport">MeasurementReport</span></td>
<td>base64[]</td>
<td>R</td>
<td>Comma-separated list of Base64s. Measurement Report element(s) received from the Associated Device (STA) that constitute the latest Beacon report as defined in Figure 9-199 of [<a href="#R.802.11-2016">802.11-2016</a>].</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.STA.NumberOfMeasureReports">NumberOfMeasureReports</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>The number of measurement report elements contained in <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.STA.MeasurementReport"><em>MeasurementReport</em></a>.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.STA.IPV4Address">IPV4Address</span></td>
<td><span title="IPv4Address">string(:45)</span></td>
<td>R</td>
<td>[<a href="#T.IPv4Address">IPv4Address</a>] IPV4 Address assigned to the client.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.STA.IPV6Address">IPV6Address</span></td>
<td><span title="IPv6Address">string(:45)</span></td>
<td>R</td>
<td>[<a href="#T.IPv6Address">IPv6Address</a>] IPV6Address assigned to the client.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.STA.Hostname">Hostname</span></td>
<td>string</td>
<td>R</td>
<td>Hostname assigned to the client.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="object inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.ScanResult.">Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.ScanResult.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td>The list of neighboring Access Points discovered by a Radio organized per Operating Class and Channel tuple.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.ScanResult.TimeStamp">TimeStamp</span></td>
<td>string</td>
<td>R</td>
<td>The timestamp of the last scan.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.ScanResult.OpClassScanNumberOfEntries">OpClassScanNumberOfEntries</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>The number of entries in the <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.ScanResult.OpClassScan."><em>OpClassScan</em></a> table.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="object inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.ScanResult.OpClassScan.">Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.ScanResult.{i}.OpClassScan.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>The Operating Class of neighboring Access Points discovered by a Radio during a channel scan.</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.ScanResult.OpClassScan.OperatingClass"><em>OperatingClass</em></a>.</p></td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.ScanResult.OpClassScan.OperatingClass">OperatingClass</span></td>
<td>unsignedInt(:255)</td>
<td>R</td>
<td>The Operating Class per Table E-4 in [<a href="#R.802.11-2016">802.11-2016</a>] of the OpClass and Channel tuple scanned by the Radio. For 2.4GHz and 5GHz bands, only 20MHz Operating Classes are valid.
Note that the Operating Class identifies the band and channel width.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.ScanResult.OpClassScan.ChannelScanNumberOfEntries">ChannelScanNumberOfEntries</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>The number of entries in the <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.ScanResult.OpClassScan.ChannelScan."><em>ChannelScan</em></a> table.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="object inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.ScanResult.OpClassScan.ChannelScan.">Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.ScanResult.{i}.OpClassScan.{i}.ChannelScan.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>The Channel associated with an Operating Class of neighboring Access Points discovered by a Radio during a channel scan.</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.ScanResult.OpClassScan.ChannelScan.Channel"><em>Channel</em></a>.</p></td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.ScanResult.OpClassScan.ChannelScan.Channel">Channel</span></td>
<td>unsignedInt(:255)</td>
<td>R</td>
<td>The channel number of the Channel scanned by the Radio given the Operating Class.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.ScanResult.OpClassScan.ChannelScan.TimeStamp">TimeStamp</span></td>
<td>string</td>
<td>R</td>
<td>The timestamp of the last scan of the channel.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.ScanResult.OpClassScan.ChannelScan.Utilization">Utilization</span></td>
<td>unsignedInt(:255)</td>
<td>R</td>
<td>The current Channel Utilization measured by the Radio on the scanned 20MHz channel, as defined by [<a href="#R.802.11-2016">Section 9.4.2.28/802.11-2016</a>].</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.ScanResult.OpClassScan.ChannelScan.Noise">Noise</span></td>
<td>unsignedInt(:255)</td>
<td>R</td>
<td>An indicator of the average radio noise plus interference power measured for the primary operating channel.
Encoded as defined for ANPI in [<a href="#R.802.11-2016">Section 11.11.9.4/802.11-2016</a>].</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.ScanResult.OpClassScan.ChannelScan.NeighborBSSNumberOfEntries">NeighborBSSNumberOfEntries</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>The number of entries in the <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.ScanResult.OpClassScan.ChannelScan.NeighborBSS."><em>NeighborBSS</em></a> table.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="object inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.ScanResult.OpClassScan.ChannelScan.NeighborBSS.">Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.ScanResult.{i}.OpClassScan.{i}.ChannelScan.{i}.NeighborBSS.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>The neighboring BSS discovered by a Radio during a channel scan.</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.ScanResult.OpClassScan.ChannelScan.NeighborBSS.BSSID"><em>BSSID</em></a>.</p></td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.ScanResult.OpClassScan.ChannelScan.NeighborBSS.BSSID">BSSID</span></td>
<td><span title="MACAddress">string(:17)</span></td>
<td>R</td>
<td>[<a href="#T.MACAddress">MACAddress</a>] The BSSID indicated by the neighboring BSS.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.ScanResult.OpClassScan.ChannelScan.NeighborBSS.SSID">SSID</span></td>
<td>string</td>
<td>R</td>
<td>The SSID indicated by the neighboring BSS.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.ScanResult.OpClassScan.ChannelScan.NeighborBSS.SignalStrength">SignalStrength</span></td>
<td>unsignedInt(:255)</td>
<td>R</td>
<td>An indicator of radio signal strength (RSSI) of the Beacon or Probe Response frames of the neighboring BSS as received by the radio measured in <em>dBm</em>. (RSSI is encoded per Table 9-154 of [<a href="#R.802.11-2016">802.11-2016</a>]). Reserved: 221 - 255.
NOTE: The underlying WFA specification is in the process of being reviewed for possible clarification. Please refer to that specification for more details.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.ScanResult.OpClassScan.ChannelScan.NeighborBSS.ChannelBandwidth">ChannelBandwidth</span></td>
<td>string</td>
<td>R</td>
<td>Indicates the maximum bandwidth at which the neighboring BSS is operating. e.g. &ldquo;20&rdquo; or &ldquo;40&rdquo; or &ldquo;80&rdquo; or &ldquo;80+80&rdquo; or &ldquo;160&rdquo; MHz.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.ScanResult.OpClassScan.ChannelScan.NeighborBSS.ChannelUtilization">ChannelUtilization</span></td>
<td>unsignedInt(:255)</td>
<td>R</td>
<td>The channel utilization reported by the neighboring BSS per the BSS Load element if present in Beacon or Probe Response frames, as defined by Section 9.4.2.28 in [<a href="#R.802.11-2016">802.11-2016</a>].</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.ScanResult.OpClassScan.ChannelScan.NeighborBSS.StationCount">StationCount</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>The number of Associated Devices (STA) reported by this neighboring BSS per the BSS Load element if present in Beacon or Probe Response frames as defined by [<a href="#R.802.11-2016">Section 9.4.2.28/802.11-2016</a>].</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="object inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.UnassociatedSTA.">Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.UnassociatedSTA.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>Each instance represents a Non-AP STA that has been discovered by the Radio but is not associated to any of the BSS operating on the Radio.</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.UnassociatedSTA.MACAddress"><em>MACAddress</em></a>.</p></td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.UnassociatedSTA.MACAddress">MACAddress</span></td>
<td><span title="MACAddress">string(:17)</span></td>
<td>R</td>
<td>[<a href="#T.MACAddress">MACAddress</a>] The MAC address of the Non-AP STA.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.UnassociatedSTA.SignalStrength">SignalStrength</span></td>
<td>unsignedInt(:255)</td>
<td>R</td>
<td>An indicator of radio signal strength (RCPI) of the uplink from the Non-AP STA - measured in <em>dBm</em>. (RCPI threshold is encoded per Table 9-154 of [<a href="#R.802.11-2016">802.11-2016</a>], and described in 103.2 of [<a href="#R.MAPv1.0">MAPv1.0</a>]). Reserved: 221 - 255.
NOTE: The underlying WFA specification is in the process of being reviewed for possible clarification. Please refer to that specification for more details.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="object inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.AssociationEvent.">Device.WiFi.DataElements.AssociationEvent.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object contains the events generated when a STA associates to a BSS.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.AssociationEvent.AssociationEventDataNumberOfEntries">AssociationEventDataNumberOfEntries</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>The number of entries in the <a href="#D.Device:2.Device.WiFi.DataElements.AssociationEvent.AssociationEventData."><em>AssociationEventData</em></a> table.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="object inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.AssociationEvent.AssociationEventData.">Device.WiFi.DataElements.AssociationEvent.AssociationEventData.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td>The events generated when an Associated Device (STA) associates to a BSS.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.AssociationEvent.AssociationEventData.BSSID">BSSID</span></td>
<td><span title="MACAddress">string(:17)</span></td>
<td>R</td>
<td>[<a href="#T.MACAddress">MACAddress</a>] The MAC Address of the logical BSS ( BSSID) which is reporting the Association Event.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.AssociationEvent.AssociationEventData.MACAddress">MACAddress</span></td>
<td><span title="MACAddress">string(:17)</span></td>
<td>R</td>
<td>[<a href="#T.MACAddress">MACAddress</a>] The MAC Address of the Associated Device (STA).</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.AssociationEvent.AssociationEventData.StatusCode">StatusCode</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>The status code sent to the Associated Device (STA) in the Association Response frame as defined by Table 9-46 in [<a href="#R.802.11-2016">802.11-2016</a>].</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.AssociationEvent.AssociationEventData.HTCapabilities">HTCapabilities</span></td>
<td>base64(1)</td>
<td>R</td>
<td>Describes the HT capabilities of the Associated Device (STA).</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.AssociationEvent.AssociationEventData.VHTCapabilities">VHTCapabilities</span></td>
<td>base64(2:6)</td>
<td>R</td>
<td>Describes the VHT capabilities of the Associated Device (STA).</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.AssociationEvent.AssociationEventData.HECapabilities">HECapabilities</span></td>
<td>base64(4:14)</td>
<td>R</td>
<td>Describes the HE capabilities of the Associated Device (STA).</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.AssociationEvent.AssociationEventData.TimeStamp">TimeStamp</span></td>
<td>string</td>
<td>R</td>
<td>The time this event was collected.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="object inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.DisassociationEvent.">Device.WiFi.DataElements.DisassociationEvent.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object contains the events generated when an Associated Device (STA) disassociates from a BSS.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.DisassociationEvent.DisassociationEventDataNumberOfEntries">DisassociationEventDataNumberOfEntries</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>The number of entries in the <a href="#D.Device:2.Device.WiFi.DataElements.DisassociationEvent.DisassociationEventData."><em>DisassociationEventData</em></a> table.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="object inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.DisassociationEvent.DisassociationEventData.">Device.WiFi.DataElements.DisassociationEvent.DisassociationEventData.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td>The events generated when an Associated Device (STA) disassociates from a BSS.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.DisassociationEvent.DisassociationEventData.BSSID">BSSID</span></td>
<td><span title="MACAddress">string(:17)</span></td>
<td>R</td>
<td>[<a href="#T.MACAddress">MACAddress</a>] The MAC Address of the logical BSS ( BSSID) which is reporting the Disassociation Event.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.DisassociationEvent.DisassociationEventData.MACAddress">MACAddress</span></td>
<td><span title="MACAddress">string(:17)</span></td>
<td>R</td>
<td>[<a href="#T.MACAddress">MACAddress</a>] The MAC address of the Associated Device (STA).</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.DisassociationEvent.DisassociationEventData.ReasonCode">ReasonCode</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>The Reason Code received by the AP from the Associated Device (STA) in the most recent Disassociation or Deauthentication frame or sent by the AP to the Associated Device (STA) in the most recent Disassociation or Deauthenticaiton frame as defined in Table 9-45 in [<a href="#R.802.11-2016">802.11-2016</a>].</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.DisassociationEvent.DisassociationEventData.BytesSent">BytesSent</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td>[<a href="#T.StatsCounter64">StatsCounter64</a>] The total number of bytes transmitted to the Associated Device (STA).</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.DisassociationEvent.DisassociationEventData.BytesReceived">BytesReceived</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td>[<a href="#T.StatsCounter64">StatsCounter64</a>] The total number of bytes received from the Associated Device (STA).</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.DisassociationEvent.DisassociationEventData.PacketsSent">PacketsSent</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td>[<a href="#T.StatsCounter64">StatsCounter64</a>] The total number of packets transmitted to the Associated Device (STA).</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.DisassociationEvent.DisassociationEventData.PacketsReceived">PacketsReceived</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td>[<a href="#T.StatsCounter64">StatsCounter64</a>] The total number of packets received from the Associated Device (STA).</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.DisassociationEvent.DisassociationEventData.ErrorsSent">ErrorsSent</span></td>
<td><span title="StatsCounter32">unsignedInt</span></td>
<td>R</td>
<td>[<a href="#T.StatsCounter32">StatsCounter32</a>] The total number of outbound packets that could not be transmitted to the Associated Device (STA) because of errors. These might be due to the number of retransmissions exceeding the retry limit or from other causes.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.DisassociationEvent.DisassociationEventData.ErrorsReceived">ErrorsReceived</span></td>
<td><span title="StatsCounter32">unsignedInt</span></td>
<td>R</td>
<td>[<a href="#T.StatsCounter32">StatsCounter32</a>] The total number of inbound packets from the Associated Device (STA) that contained errors preventing them from being delivered to a higher-layer protocol.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.DisassociationEvent.DisassociationEventData.RetransCount">RetransCount</span></td>
<td><span title="StatsCounter32">unsignedInt</span></td>
<td>R</td>
<td>[<a href="#T.StatsCounter32">StatsCounter32</a>] The total number of transmitted packets to the Associated Device (STA) which were retransmissions.
N retransmissions of the same packet results in this counter incrementing by N.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.DisassociationEvent.DisassociationEventData.TimeStamp">TimeStamp</span></td>
<td>string</td>
<td>R</td>
<td>The time this event was collected.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.WiFi.Radio.">Device.WiFi.Radio.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>This object models an 802.11 wireless radio on a device (a stackable interface object as described in [<a href="#R.TR-181i2">Section 4.2/TR-181i2</a>]).
If the device can establish more than one connection simultaneously (e.g. a dual radio device), a separate <em>Radio</em> instance MUST be used for each physical radio of the device. See [<a href="#R.TR-181i2">Appendix III.1/TR-181i2</a>] for additional information.
Note: A dual-band single-radio device (e.g. an 802.11a/b/g radio) can be configured to operate at 2.4 or 5 GHz frequency bands, but only a single frequency band is used to transmit/receive at a given time. Therefore, a single <em>Radio</em> instance is used even for a dual-band radio.</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.WiFi.Radio.Alias"><em>Alias</em></a>, or with a given value for <a href="#D.Device:2.Device.WiFi.Radio.Name"><em>Name</em></a>.</p>

<div class="diffs"><p><strong>Changes in 2.13:</strong></p>

<ul>
<li>Added <a href="#D.Device:2.Device.WiFi.Radio.CenterFrequencySegement0"><em>CenterFrequencySegement0</em></a> parameter</li>
<li>Added <a href="#D.Device:2.Device.WiFi.Radio.CenterFrequencySegement1"><em>CenterFrequencySegement1</em></a> parameter</li></ul></div></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.Radio.SupportedStandards">SupportedStandards</span></td>
<td>string[]</td>
<td>R</td>
<td><p>Comma-separated list of strings. List items indicate which IEEE 802.11 standards this <a href="#D.Device:2.Device.WiFi.Radio."><em>Radio</em></a> instance can support simultaneously, in the frequency band specified by <a href="#D.Device:2.Device.WiFi.Radio.OperatingFrequencyBand"><em>OperatingFrequencyBand</em></a>. Each list item is an enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.WiFi.Radio.SupportedStandards.a"><em>a</em></span> ([<a href="#R.802.11a-1999">802.11a-1999</a>])</li>
<li><span id="D.Device:2.Device.WiFi.Radio.SupportedStandards.b"><em>b</em></span> ([<a href="#R.802.11b-1999">802.11b-1999</a>])</li>
<li><span id="D.Device:2.Device.WiFi.Radio.SupportedStandards.g"><em>g</em></span> ([<a href="#R.802.11g-2003">802.11g-2003</a>])</li>
<li><span id="D.Device:2.Device.WiFi.Radio.SupportedStandards.n"><em>n</em></span> ([<a href="#R.802.11n-2009">802.11n-2009</a>])</li>
<li><span id="D.Device:2.Device.WiFi.Radio.SupportedStandards.ac"><em>ac</em></span> ([<a href="#R.802.11ac-2013">802.11ac-2013</a>])</li>
<li><span id="D.Device:2.Device.WiFi.Radio.SupportedStandards.ax"><em>ax</em></span> ([<a href="#R.802.11ax">802.11ax</a>])
Each value indicates support for the indicated standard. If <a href="#D.Device:2.Device.WiFi.Radio.OperatingFrequencyBand"><em>OperatingFrequencyBand</em></a> is set to <a href="#D.Device:2.Device.WiFi.Radio.SupportedFrequencyBands.2.4GHz"><em>2.4GHz</em></a>, only values <a href="#D.Device:2.Device.WiFi.Radio.SupportedStandards.b"><em>b</em></a>, <a href="#D.Device:2.Device.WiFi.Radio.SupportedStandards.g"><em>g</em></a>, <a href="#D.Device:2.Device.WiFi.Radio.SupportedStandards.n"><em>n</em></a><span class="inserted">, <a href="#D.Device:2.Device.WiFi.Radio.SupportedStandards.ax"><em>ax</em></a></span> are allowed. If <a href="#D.Device:2.Device.WiFi.Radio.OperatingFrequencyBand"><em>OperatingFrequencyBand</em></a> is set to <a href="#D.Device:2.Device.WiFi.Radio.SupportedFrequencyBands.5GHz"><em>5GHz</em></a>, only values <a href="#D.Device:2.Device.WiFi.Radio.SupportedStandards.a"><em>a</em></a>, <a href="#D.Device:2.Device.WiFi.Radio.SupportedStandards.n"><em>n</em></a>, <a href="#D.Device:2.Device.WiFi.Radio.SupportedStandards.ac"><em>ac</em></a><span class="inserted">, <a href="#D.Device:2.Device.WiFi.Radio.SupportedStandards.ax"><em>ax</em></a></span> are allowed.</li></ul>

<div class="diffs"><p><strong>Changes in 2.13:</strong></p>

<ul>
<li>Added string <em>ax</em> enumeration</li></ul></div></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.Radio.OperatingStandards">OperatingStandards</span></td>
<td>string[]</td>
<td>W</td>
<td>Each list item MUST be a member of the list reported by the <a href="#D.Device:2.Device.WiFi.Radio.SupportedStandards"><em>SupportedStandards</em></a> parameter. Comma-separated list of strings. List items indicate which IEEE 802.11 standard this <a href="#D.Device:2.Device.WiFi.Radio."><em>Radio</em></a> instance is configured for. Each value indicates support for the indicated standard. If <a href="#D.Device:2.Device.WiFi.Radio.OperatingFrequencyBand"><em>OperatingFrequencyBand</em></a> is set to <a href="#D.Device:2.Device.WiFi.Radio.SupportedFrequencyBands.2.4GHz"><em>2.4GHz</em></a>, only values <a href="#D.Device:2.Device.WiFi.Radio.SupportedStandards.b"><em>b</em></a>, <a href="#D.Device:2.Device.WiFi.Radio.SupportedStandards.g"><em>g</em></a>, <a href="#D.Device:2.Device.WiFi.Radio.SupportedStandards.n"><em>n</em></a><span class="inserted">, <a href="#D.Device:2.Device.WiFi.Radio.SupportedStandards.ax"><em>ax</em></a></span> are allowed. If <a href="#D.Device:2.Device.WiFi.Radio.OperatingFrequencyBand"><em>OperatingFrequencyBand</em></a> is set to <a href="#D.Device:2.Device.WiFi.Radio.SupportedFrequencyBands.5GHz"><em>5GHz</em></a>, only values <a href="#D.Device:2.Device.WiFi.Radio.SupportedStandards.a"><em>a</em></a>, <a href="#D.Device:2.Device.WiFi.Radio.SupportedStandards.n"><em>n</em></a>, <strong>{{enum: non-existent ac, <a href="#D.Device:2.Device.WiFi.Radio.SupportedStandards.ax"><em>ax</em></a>}}</strong> are allowed. For example, a value of &ldquo;g,b&rdquo; (or &ldquo;b,g&rdquo; - order is not important) means that the 802.11g standard [<a href="#R.802.11g-2003">802.11g-2003</a>] is used with a backwards-compatible mode for 802.11b [<a href="#R.802.11b-1999">802.11b-1999</a>]. A value of &ldquo;g&rdquo; means that only the 802.11g standard can be used.</td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.Radio.Channel">Channel</span></td>
<td>unsignedInt(1:255)</td>
<td>W</td>
<td>The current radio channel used by the connection. To request automatic channel selection, set <a href="#D.Device:2.Device.WiFi.Radio.AutoChannelEnable"><em>AutoChannelEnable</em></a> to <em>true</em>. Whenever <a href="#D.Device:2.Device.WiFi.Radio.AutoChannelEnable"><em>AutoChannelEnable</em></a> is <em>true</em>, the value of the <em>Channel</em> parameter MUST be the channel selected by the automatic channel selection procedure. <span class="inserted">For channels in &ldquo;wide mode&rdquo; (802.11n where a 40MHz channel bandwidth is used), this parameter is used for Primary Channel only. The secondary or extension channel information is available through <a href="#D.Device:2.Device.WiFi.Radio.ExtensionChannel"><em>ExtensionChannel</em></a>. </span>Note: Valid <em>Channel</em> values depend on the <a href="#D.Device:2.Device.WiFi.Radio.OperatingFrequencyBand"><em>OperatingFrequencyBand</em></a> and <a href="#D.Device:2.Device.WiFi.Radio.RegulatoryDomain"><em>RegulatoryDomain</em></a> values specified.</td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.Radio.SupportedOperatingChannelBandwidths">SupportedOperatingChannelBandwidths</span></td>
<td>string[]</td>
<td>R</td>
<td><p>Comma-separated list of strings. These are the valid writable values for <a href="#D.Device:2.Device.WiFi.Radio.OperatingChannelBandwidth"><em>OperatingChannelBandwidth</em></a>.</p>

<p>Each list item is an enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.WiFi.Radio.SupportedOperatingChannelBandwidths.20MHz"><em>20MHz</em></span></li>
<li><span id="D.Device:2.Device.WiFi.Radio.SupportedOperatingChannelBandwidths.40MHz"><em>40MHz</em></span> (wide mode)</li>
<li><span id="D.Device:2.Device.WiFi.Radio.SupportedOperatingChannelBandwidths.80MHz"><em>80MHz</em></span> (802.11ac <span class="inserted">and 802.11ax </span>only)</li>
<li><span id="D.Device:2.Device.WiFi.Radio.SupportedOperatingChannelBandwidths.160MHz"><em>160MHz</em></span> (802.11ac <span class="inserted">and 802.11ax </span>only)</li>
<li><span id="D.Device:2.Device.WiFi.Radio.SupportedOperatingChannelBandwidths.8080MHz"><em>80+80MHz</em></span> (802.11ac and 802.11ax only)</li>
<li><span id="D.Device:2.Device.WiFi.Radio.SupportedOperatingChannelBandwidths.Auto"><em>Auto</em></span></li></ul>

<div class="diffs"><p><strong>Changes in 2.13:</strong></p>

<ul>
<li>Added string <em>80+80MHz</em> enumeration</li></ul></div></td>
<td>-</td>
<td>2.12</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.Radio.OperatingChannelBandwidth">OperatingChannelBandwidth</span></td>
<td>string</td>
<td>W</td>
<td>The value MUST be a member of the list reported by the <a href="#D.Device:2.Device.WiFi.Radio.SupportedOperatingChannelBandwidths"><em>SupportedOperatingChannelBandwidths</em></a> parameter. The preferred channel bandwidth to be used (applicable to <span class="removed">802.11n</span><span class="inserted">802.11n, 802.11ac,</span> and <span class="removed">802.11ac</span><span class="inserted">802.11ax</span> specifications only).</td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.Radio.CurrentOperatingChannelBandwidth">CurrentOperatingChannelBandwidth</span></td>
<td>string</td>
<td>R</td>
<td><p>The channel bandwidth currently in use.</p>

<p>Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.WiFi.Radio.CurrentOperatingChannelBandwidth.20MHz"><em>20MHz</em></span></li>
<li><span id="D.Device:2.Device.WiFi.Radio.CurrentOperatingChannelBandwidth.40MHz"><em>40MHz</em></span></li>
<li><span id="D.Device:2.Device.WiFi.Radio.CurrentOperatingChannelBandwidth.80MHz"><em>80MHz</em></span></li>
<li><span id="D.Device:2.Device.WiFi.Radio.CurrentOperatingChannelBandwidth.160MHz"><em>160MHz</em></span></li>
<li><span id="D.Device:2.Device.WiFi.Radio.CurrentOperatingChannelBandwidth.8080MHz"><em>80+80MHz</em></span></li></ul>

<div class="diffs"><p><strong>Changes in 2.13:</strong></p>

<ul>
<li>Added string <em>80+80MHz</em> enumeration</li></ul></div></td>
<td>-</td>
<td>2.11</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.Radio.ExtensionChannel">ExtensionChannel</span></td>
<td>string</td>
<td>W</td>
<td><p>The secondary extension channel <span class="removed">position,</span><span class="inserted">position (applicable to the 802.11n specification only),</span> applicable when operating in wide channel mode (i.e. when <a href="#D.Device:2.Device.WiFi.Radio.OperatingChannelBandwidth"><em>OperatingChannelBandwidth</em></a> is set to <a href="#D.Device:2.Device.WiFi.Radio.SupportedOperatingChannelBandwidths.40MHz"><em>40MHz</em></a> or <a href="#D.Device:2.Device.WiFi.Radio.SupportedOperatingChannelBandwidths.Auto"><em>Auto</em></a>).</p>

<p>Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.WiFi.Radio.ExtensionChannel.AboveControlChannel"><em>AboveControlChannel</em></span></li>
<li><span id="D.Device:2.Device.WiFi.Radio.ExtensionChannel.BelowControlChannel"><em>BelowControlChannel</em></span></li>
<li><span id="D.Device:2.Device.WiFi.Radio.ExtensionChannel.Auto"><em>Auto</em></span></li></ul></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.Radio.GuardInterval">GuardInterval</span></td>
<td>string</td>
<td>W</td>
<td><p>The guard interval value between OFDM <span class="removed">symbols (applicable to 802.11n and 802.11ac specifications only).</span><span class="inserted">symbols.</span></p>

<p>Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.WiFi.Radio.GuardInterval.400nsec"><em>400nsec</em></span> (</li></ul>

<p>applicable to 802.11n and 802.11ac specifications only</p>

<div class="diffs"><p><strong>Changes in 2.13:</strong></p>

<ul>
<li>Added <em>applicable to 802.11n and 802.11ac specifications only</em> description</li></ul></div>

<p>)</p>

<ul>
<li><span id="D.Device:2.Device.WiFi.Radio.GuardInterval.800nsec"><em>800nsec</em></span> (</li></ul>

<p>applicable to 802.11n, 802.11ac, and 802.11ax specifications only</p>

<div class="diffs"><p><strong>Changes in 2.13:</strong></p>

<ul>
<li>Added <em>applicable to 802.11n, 802.11ac, and 802.11ax specifications only</em> description</li></ul></div>

<p>)</p>

<ul>
<li><span id="D.Device:2.Device.WiFi.Radio.GuardInterval.1600nsec"><em>1600nsec</em></span> (applicable to 802.11ax specifications only)</li>
<li><span id="D.Device:2.Device.WiFi.Radio.GuardInterval.3200nsec"><em>3200nsec</em></span> (applicable to 802.11ax specifications only)</li>
<li><span id="D.Device:2.Device.WiFi.Radio.GuardInterval.Auto"><em>Auto</em></span></li></ul>

<div class="diffs"><p><strong>Changes in 2.13:</strong></p>

<ul>
<li>Added string <em>1600nsec</em> enumeration</li>
<li>Added string <em>3200nsec</em> enumeration</li></ul></div></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.Radio.CenterFrequencySegement0">CenterFrequencySegement0</span></td>
<td>unsignedInt</td>
<td>W</td>
<td>When operating in <a href="#D.Device:2.Device.WiFi.Radio.CurrentOperatingChannelBandwidth.8080MHz"><em>80+80MHz</em></a>, this parameter determines the Center Frequency Segment 0 for the first 80 MHz channel. See [<a href="#R.802.11-2016">Section 9.4.2.161/802.11-2016</a>] and Table 9-252.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.Radio.CenterFrequencySegement1">CenterFrequencySegement1</span></td>
<td>unsignedInt</td>
<td>W</td>
<td>When operating in <a href="#D.Device:2.Device.WiFi.Radio.CurrentOperatingChannelBandwidth.8080MHz"><em>80+80MHz</em></a>, this parameter determines the Center Frequency Segment 1 for the second 80 MHz channel. See [<a href="#R.802.11-2016">Section 9.4.2.161/802.11-2016</a>] and Table 9-252.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.">Device.WiFi.NeighboringWiFiDiagnostic.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object defines access to other WiFi SSIDs that this device is able to receive.</td>
<td>-</td>
<td>2.7</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.WiFi.Radio.Stats.">Device.WiFi.Radio.{i}.Stats.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>Throughput statistics for this interface. Packet counters here count 802.11 WiFi frames. See <strong>{{bibref: non-existent <span class="inserted">TR-181i2</span>}}</strong> for further details. The CPE MUST reset the interface’s Stats parameters (unless otherwise stated in individual object or parameter descriptions) either when the interface becomes operationally down due to a previous administrative down (i.e. the interface’s <a href="#D.Device:2.Device.WiFi.Radio.Status"><em>Status</em></a> parameter transitions to a down state after the interface is disabled) or when the interface becomes administratively up (i.e. the interface’s <a href="#D.Device:2.Device.WiFi.Radio.Enable"><em>Enable</em></a> parameter transitions from <em>false</em> to <em>true</em>). Administrative and operational interface status is discussed in <strong>{{bibref: non-existent <span class="inserted">TR-181i2</span>}}</strong>.</td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.WiFi.SSID.">Device.WiFi.SSID.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>WiFi SSID table (a stackable interface object as described in [<a href="#R.TR-181i2">Section 4.2/TR-181i2</a>]), where table entries model the MAC layer. A WiFi SSID entry is typically stacked on top of a <a href="#D.Device:2.Device.WiFi.Radio."><em>Radio</em></a> object.
WiFi SSID is also a multiplexing layer, i.e. more than one <em>SSID</em> can be stacked above a single <a href="#D.Device:2.Device.WiFi.Radio."><em>Radio</em></a>.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.WiFi.SSID.Alias"><em>Alias</em></a>, or with a given value for <a href="#D.Device:2.Device.WiFi.SSID.Name"><em>Name</em></a>. On creation of a new table entry, the Agent MUST choose initial values for <a href="#D.Device:2.Device.WiFi.SSID.Alias"><em>Alias</em></a> and <a href="#D.Device:2.Device.WiFi.SSID.Name"><em>Name</em></a> such that the new entry does not conflict with any existing entries.
At most one enabled entry in this table can exist with a given value for <a href="#D.Device:2.Device.WiFi.SSID.BSSID"><em>BSSID</em></a>.</p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.WiFi.SSID.Stats.">Device.WiFi.SSID.{i}.Stats.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>Throughput statistics for this interface. Packet counters here count 802.11 WiFi frames. See <strong>{{bibref: non-existent <span class="inserted">TR-181i2</span>}}</strong> for further details. The CPE MUST reset the interface’s Stats parameters (unless otherwise stated in individual object or parameter descriptions) either when the interface becomes operationally down due to a previous administrative down (i.e. the interface’s <a href="#D.Device:2.Device.WiFi.SSID.Status"><em>Status</em></a> parameter transitions to a down state after the interface is disabled) or when the interface becomes administratively up (i.e. the interface’s <a href="#D.Device:2.Device.WiFi.SSID.Enable"><em>Enable</em></a> parameter transitions from <em>false</em> to <em>true</em>). Administrative and operational interface status is discussed in <strong>{{bibref: non-existent <span class="inserted">TR-181i2</span>}}</strong>.</td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.WiFi.AccessPoint.">Device.WiFi.AccessPoint.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>This object models an 802.11 connection from the perspective of a wireless access point. Each <em>AccessPoint</em> entry is associated with a particular <a href="#D.Device:2.Device.WiFi.SSID."><em>SSID</em></a> interface instance via the <a href="#D.Device:2.Device.WiFi.AccessPoint.SSIDReference"><em>SSIDReference</em></a> parameter.
For enabled table entries, if <a href="#D.Device:2.Device.WiFi.AccessPoint.SSIDReference"><em>SSIDReference</em></a> is not a valid reference then the table entry is inoperable and the CPE MUST set <a href="#D.Device:2.Device.WiFi.AccessPoint.Status"><em>Status</em></a> to <a href="#D.Device:2.Device.WiFi.AccessPoint.Status.Error_Misconfigured"><em>Error_Misconfigured</em></a>.
Note: The <em>AccessPoint</em> table includes a unique key parameter that is a strong reference. If a strongly referenced object is deleted, the CPE will set the referencing parameter to an empty string. However, doing so under these circumstances might cause the updated <em>AccessPoint</em> row to then violate the table’s unique key constraint; if this occurs, the CPE MUST set <a href="#D.Device:2.Device.WiFi.AccessPoint.Status"><em>Status</em></a> to <a href="#D.Device:2.Device.WiFi.AccessPoint.Status.Error_Misconfigured"><em>Error_Misconfigured</em></a> and disable the offending <em>AccessPoint</em> row.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.WiFi.AccessPoint.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.WiFi.AccessPoint.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.
At most one enabled entry in this table can exist with a given value for <a href="#D.Device:2.Device.WiFi.AccessPoint.SSIDReference"><em>SSIDReference</em></a>.</p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="deprecated-parameter">
<td><span id="D.Device:2.Device.WiFi.AccessPoint.MaxAssociatedDevices">MaxAssociatedDevices</span></td>
<td>unsignedInt</td>
<td>W</td>
<td>The maximum number of devices that can simultaneously be connected to the access point. A value of 0 means that there is no specific limit.<span class="inserted"> This parameter has been DEPRECATED in favor of <a href="#D.Device:2.Device.WiFi.AccessPoint.MaxAllowedAssociations"><em>MaxAllowedAssociations</em></a>.</span>

<div class="diffs"><p><strong>Changes in 2.13:</strong></p>

<ul>
<li>Added status = <em>deprecated</em></li></ul></div></td>
<td>0</td>
<td>2.4</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.WiFi.AccessPoint.Security.">Device.WiFi.AccessPoint.{i}.Security.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object contains security related parameters that apply to a CPE acting as an Access Point [<a href="#R.802.11-2007">802.11-2007</a>].

<div class="diffs"><p><strong>Changes in 2.13:</strong></p>

<ul>
<li>Added <a href="#D.Device:2.Device.WiFi.AccessPoint.Security.SAEPassphrase"><em>SAEPassphrase</em></a> parameter</li></ul></div></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.AccessPoint.Security.ModesSupported">ModesSupported</span></td>
<td>string[]</td>
<td>R</td>
<td><p>Comma-separated list of strings. Indicates which security modes this <a href="#D.Device:2.Device.WiFi.AccessPoint."><em>AccessPoint</em></a> instance is capable of supporting.</p>

<p>Each list item is an enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.WiFi.AccessPoint.Security.ModesSupported.None"><em>None</em></span></li>
<li><span id="D.Device:2.Device.WiFi.AccessPoint.Security.ModesSupported.WEP-64"><em>WEP-64</em></span></li>
<li><span id="D.Device:2.Device.WiFi.AccessPoint.Security.ModesSupported.WEP-128"><em>WEP-128</em></span></li>
<li><span id="D.Device:2.Device.WiFi.AccessPoint.Security.ModesSupported.WPA-Personal"><em>WPA-Personal</em></span></li>
<li><span id="D.Device:2.Device.WiFi.AccessPoint.Security.ModesSupported.WPA2-Personal"><em>WPA2-Personal</em></span></li>
<li><span id="D.Device:2.Device.WiFi.AccessPoint.Security.ModesSupported.WPA3-Personal"><em>WPA3-Personal</em></span></li>
<li><span id="D.Device:2.Device.WiFi.AccessPoint.Security.ModesSupported.WPA-WPA2-Personal"><em>WPA-WPA2-Personal</em></span></li>
<li><span id="D.Device:2.Device.WiFi.AccessPoint.Security.ModesSupported.WPA3-Personal-Transition"><em>WPA3-Personal-Transition</em></span></li>
<li><span id="D.Device:2.Device.WiFi.AccessPoint.Security.ModesSupported.WPA-Enterprise"><em>WPA-Enterprise</em></span></li>
<li><span id="D.Device:2.Device.WiFi.AccessPoint.Security.ModesSupported.WPA2-Enterprise"><em>WPA2-Enterprise</em></span></li>
<li><span id="D.Device:2.Device.WiFi.AccessPoint.Security.ModesSupported.WPA3-Enterprise"><em>WPA3-Enterprise</em></span></li>
<li><span id="D.Device:2.Device.WiFi.AccessPoint.Security.ModesSupported.WPA-WPA2-Enterprise"><em>WPA-WPA2-Enterprise</em></span></li></ul>

<div class="diffs"><p><strong>Changes in 2.13:</strong></p>

<ul>
<li>Added string <em>WPA3-Personal</em> enumeration</li>
<li>Added string <em>WPA3-Personal-Transition</em> enumeration</li>
<li>Added string <em>WPA3-Enterprise</em> enumeration</li></ul></div></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.AccessPoint.Security.PreSharedKey">PreSharedKey</span></td>
<td>hexBinary(:32)</td>
<td>W</td>
<td><p>A literal PreSharedKey (PSK) expressed as a hexadecimal string. <em>PreSharedKey</em> is only used if <a href="#D.Device:2.Device.WiFi.AccessPoint.Security.ModeEnabled"><em>ModeEnabled</em></a> is set to <a href="#D.Device:2.Device.WiFi.AccessPoint.Security.ModesSupported.WPA-Personal"><em>WPA-Personal</em></a> or <a href="#D.Device:2.Device.WiFi.AccessPoint.Security.ModesSupported.WPA2-Personal"><em>WPA2-Personal</em></a> or <a href="#D.Device:2.Device.WiFi.AccessPoint.Security.ModesSupported.WPA-WPA2-Personal"><em>WPA-WPA2-Personal</em></a>. If <a href="#D.Device:2.Device.WiFi.AccessPoint.Security.KeyPassphrase"><em>KeyPassphrase</em></a> is written, then <em>PreSharedKey</em> is immediately generated. The <span class="removed">ACS</span><span class="inserted">Controller</span> SHOULD NOT set both the <a href="#D.Device:2.Device.WiFi.AccessPoint.Security.KeyPassphrase"><em>KeyPassphrase</em></a> and the <em>PreSharedKey</em> directly (the result of doing this is undefined).</p>

<p>When read, this parameter returns an empty string, regardless of the actual value.</p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.AccessPoint.Security.KeyPassphrase">KeyPassphrase</span></td>
<td>string(8:63)</td>
<td>W</td>
<td><p>A passphrase from which the <a href="#D.Device:2.Device.WiFi.AccessPoint.Security.PreSharedKey"><em>PreSharedKey</em></a> is to be generated, for <a href="#D.Device:2.Device.WiFi.AccessPoint.Security.ModesSupported.WPA-Personal"><em>WPA-Personal</em></a> or <a href="#D.Device:2.Device.WiFi.AccessPoint.Security.ModesSupported.WPA2-Personal"><em>WPA2-Personal</em></a> or <a href="#D.Device:2.Device.WiFi.AccessPoint.Security.ModesSupported.WPA-WPA2-Personal"><em>WPA-WPA2-Personal</em></a> security modes. If <em>KeyPassphrase</em> is written, then <a href="#D.Device:2.Device.WiFi.AccessPoint.Security.PreSharedKey"><em>PreSharedKey</em></a> <span class="inserted">for WPA2 </span>is immediately generated. The <span class="removed">ACS</span><span class="inserted">Controller</span> SHOULD NOT set both the <em>KeyPassphrase</em> and the <a href="#D.Device:2.Device.WiFi.AccessPoint.Security.PreSharedKey"><em>PreSharedKey</em></a> directly (the result of doing this is undefined). The key is generated as specified by WPA, which uses PBKDF2 from PKCS #5: Password-based Cryptography Specification Version 2.0 ([<a href="#R.RFC2898">RFC2898</a>]).</p>

<p>When read, this parameter returns an empty string, regardless of the actual value.</p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.AccessPoint.Security.SAEPassphrase">SAEPassphrase</span></td>
<td>string</td>
<td>W</td>
<td><p>A passphrase for <a href="#D.Device:2.Device.WiFi.AccessPoint.Security.ModesSupported.WPA3-Personal"><em>WPA3-Personal</em></a> or <a href="#D.Device:2.Device.WiFi.AccessPoint.Security.ModesSupported.WPA3-Personal-Transition"><em>WPA3-Personal-Transition</em></a> security modes.
NOTE: this parameter is for WPA3. WPA2 <a href="#D.Device:2.Device.WiFi.AccessPoint.Security.PreSharedKey"><em>PreSharedKey</em></a> is generated from <a href="#D.Device:2.Device.WiFi.AccessPoint.Security.KeyPassphrase"><em>KeyPassphrase</em></a>.</p>

<p>When read, this parameter returns an empty string, regardless of the actual value.</p></td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.AccessPoint.Security.RadiusServerIPAddr">RadiusServerIPAddr</span></td>
<td><span title="IPAddress">string(:45)</span></td>
<td>W</td>
<td>[<a href="#T.IPAddress">IPAddress</a>] The IP Address of the RADIUS server used for WLAN security. <em>RadiusServerIPAddr</em> is only applicable when <a href="#D.Device:2.Device.WiFi.AccessPoint.Security.ModeEnabled"><em>ModeEnabled</em></a> is an Enterprise type (i.e. <a href="#D.Device:2.Device.WiFi.AccessPoint.Security.ModesSupported.WPA-Enterprise"><em>WPA-Enterprise</em></a>, <a href="#D.Device:2.Device.WiFi.AccessPoint.Security.ModesSupported.WPA2-Enterprise"><em>WPA2-Enterprise</em></a><span class="inserted">, <a href="#D.Device:2.Device.WiFi.AccessPoint.Security.ModesSupported.WPA3-Enterprise"><em>WPA3-Enterprise</em></a>,</span> or <a href="#D.Device:2.Device.WiFi.AccessPoint.Security.ModesSupported.WPA-WPA2-Enterprise"><em>WPA-WPA2-Enterprise</em></a>).</td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.AccessPoint.Security.SecondaryRadiusServerIPAddr">SecondaryRadiusServerIPAddr </span></td>
<td><span title="IPAddress">string(:45)</span></td>
<td>W</td>
<td>[<a href="#T.IPAddress">IPAddress</a>] The IP Address of a secondary RADIUS server used for WLAN security. *SecondaryRadiusServerIPAddr * is only applicable when <a href="#D.Device:2.Device.WiFi.AccessPoint.Security.ModeEnabled"><em>ModeEnabled</em></a> is an Enterprise type (i.e. <a href="#D.Device:2.Device.WiFi.AccessPoint.Security.ModesSupported.WPA-Enterprise"><em>WPA-Enterprise</em></a>, <a href="#D.Device:2.Device.WiFi.AccessPoint.Security.ModesSupported.WPA2-Enterprise"><em>WPA2-Enterprise</em></a><span class="inserted">, <a href="#D.Device:2.Device.WiFi.AccessPoint.Security.ModesSupported.WPA3-Enterprise"><em>WPA3-Enterprise</em></a>,</span> or <a href="#D.Device:2.Device.WiFi.AccessPoint.Security.ModesSupported.WPA-WPA2-Enterprise"><em>WPA-WPA2-Enterprise</em></a>). The client can forward requests to the secondary server in the event that the primary server is down or unreachable, or after a number of tries to the primary server fail, or in a round-robin fashion [<a href="#R.RFC2865">RFC2865</a>].</td>
<td>-</td>
<td>2.5</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.AccessPoint.Security.RadiusServerPort">RadiusServerPort</span></td>
<td>unsignedInt</td>
<td>W</td>
<td>The port number of the RADIUS server used for WLAN security. <em>RadiusServerPort</em> is only applicable when <a href="#D.Device:2.Device.WiFi.AccessPoint.Security.ModeEnabled"><em>ModeEnabled</em></a> is an Enterprise type (i.e. <a href="#D.Device:2.Device.WiFi.AccessPoint.Security.ModesSupported.WPA-Enterprise"><em>WPA-Enterprise</em></a>, <a href="#D.Device:2.Device.WiFi.AccessPoint.Security.ModesSupported.WPA2-Enterprise"><em>WPA2-Enterprise</em></a><span class="inserted">, <a href="#D.Device:2.Device.WiFi.AccessPoint.Security.ModesSupported.WPA3-Enterprise"><em>WPA3-Enterprise</em></a>,</span> or <a href="#D.Device:2.Device.WiFi.AccessPoint.Security.ModesSupported.WPA-WPA2-Enterprise"><em>WPA-WPA2-Enterprise</em></a>).</td>
<td>1812</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.AccessPoint.Security.SecondaryRadiusServerPort">SecondaryRadiusServerPort</span></td>
<td>unsignedInt</td>
<td>W</td>
<td>The port number of the secondary RADIUS server used for WLAN security. <em>SecondaryRadiusServerPort</em> is only applicable when <a href="#D.Device:2.Device.WiFi.AccessPoint.Security.ModeEnabled"><em>ModeEnabled</em></a> is an Enterprise type (i.e. <a href="#D.Device:2.Device.WiFi.AccessPoint.Security.ModesSupported.WPA-Enterprise"><em>WPA-Enterprise</em></a>, <a href="#D.Device:2.Device.WiFi.AccessPoint.Security.ModesSupported.WPA2-Enterprise"><em>WPA2-Enterprise</em></a><span class="inserted">, <a href="#D.Device:2.Device.WiFi.AccessPoint.Security.ModesSupported.WPA3-Enterprise"><em>WPA3-Enterprise</em></a>,</span> or <a href="#D.Device:2.Device.WiFi.AccessPoint.Security.ModesSupported.WPA-WPA2-Enterprise"><em>WPA-WPA2-Enterprise</em></a>). If this parameter is not implemented, the secondary RADIUS server will use the same port number as the primary RADIUS server.</td>
<td>1812</td>
<td>2.5</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.AccessPoint.Security.MFPConfig">MFPConfig</span></td>
<td>string</td>
<td>W</td>
<td><p>Management Frame Protection configuration applicable when <a href="#D.Device:2.Device.WiFi.AccessPoint.Security.ModeEnabled"><em>ModeEnabled</em></a> is set to <a href="#D.Device:2.Device.WiFi.AccessPoint.Security.ModesSupported.WPA2-Personal"><em>WPA2-Personal</em></a><span class="removed"> or</span><span class="inserted">,</span> <a href="#D.Device:2.Device.WiFi.AccessPoint.Security.ModesSupported.WPA2-Enterprise"><em>WPA2-Enterprise</em></a><span class="inserted">, <a href="#D.Device:2.Device.WiFi.AccessPoint.Security.ModesSupported.WPA3-Personal"><em>WPA3-Personal</em></a>, or <a href="#D.Device:2.Device.WiFi.AccessPoint.Security.ModesSupported.WPA3-Enterprise"><em>WPA3-Enterprise</em></a>. When in WPA3 modes, <em>MFPConfig</em> MUST be set to <a href="#D.Device:2.Device.WiFi.AccessPoint.Security.MFPConfig.Required"><em>Required</em></a></span>.</p>

<p>Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.WiFi.AccessPoint.Security.MFPConfig.Disabled"><em>Disabled</em></span></li>
<li><span id="D.Device:2.Device.WiFi.AccessPoint.Security.MFPConfig.Optional"><em>Optional</em></span></li>
<li><span id="D.Device:2.Device.WiFi.AccessPoint.Security.MFPConfig.Required"><em>Required</em></span></li></ul></td>
<td>Disabled</td>
<td>2.11</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.AccessPoint.Security.Reset">Reset</span></td>
<td>boolean</td>
<td>W</td>
<td>When set to <em>true</em>, this <a href="#D.Device:2.Device.WiFi.AccessPoint."><em>AccessPoint</em></a> instance’s WiFi security settings are reset to their factory default values. The affected settings include <a href="#D.Device:2.Device.WiFi.AccessPoint.Security.ModeEnabled"><em>ModeEnabled</em></a>, <a href="#D.Device:2.Device.WiFi.AccessPoint.Security.WEPKey"><em>WEPKey</em></a>, <a href="#D.Device:2.Device.WiFi.AccessPoint.Security.PreSharedKey"><em>PreSharedKey</em></a><span class="removed"> </span>, <a href="#D.Device:2.Device.WiFi.AccessPoint.Security.KeyPassphrase"><em>KeyPassphrase</em></a><span class="inserted">, <a href="#D.Device:2.Device.WiFi.AccessPoint.Security.SAEPassphrase"><em>SAEPassphrase</em></a>,</span> and <a href="#D.Device:2.Device.WiFi.AccessPoint.WPS.PIN"><em>WPS.PIN</em></a> (if applicable). If the parameter cannot be set, the CPE MUST reject the request as an invalid parameter value. Possible failure reasons include a lack of default values or if <a href="#D.Device:2.Device.WiFi.AccessPoint.Security.ModeEnabled"><em>ModeEnabled</em></a> is an Enterprise type, i.e. <a href="#D.Device:2.Device.WiFi.AccessPoint.Security.ModesSupported.WPA-Enterprise"><em>WPA-Enterprise</em></a>, <a href="#D.Device:2.Device.WiFi.AccessPoint.Security.ModesSupported.WPA2-Enterprise"><em>WPA2-Enterprise</em></a><span class="inserted">, <a href="#D.Device:2.Device.WiFi.AccessPoint.Security.ModesSupported.WPA3-Enterprise"><em>WPA3-Enterprise</em></a>,</span> or <a href="#D.Device:2.Device.WiFi.AccessPoint.Security.ModesSupported.WPA-WPA2-Enterprise"><em>WPA-WPA2-Enterprise</em></a>.</td>
<td>-</td>
<td>2.4</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.WiFi.AccessPoint.AssociatedDevice.">Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>A table of the devices currently associated with the access point.</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.WiFi.AccessPoint.AssociatedDevice.MACAddress"><em>MACAddress</em></a>.</p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.AccessPoint.AssociatedDevice.OperatingStandard">OperatingStandard</span></td>
<td>string</td>
<td>R</td>
<td><p>The operating standard that this associated device is connected with.</p>

<p>Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.WiFi.AccessPoint.AssociatedDevice.OperatingStandard.a"><em>a</em></span> ([<a href="#R.802.11a-1999">802.11a-1999</a>])</li>
<li><span id="D.Device:2.Device.WiFi.AccessPoint.AssociatedDevice.OperatingStandard.b"><em>b</em></span> ([<a href="#R.802.11b-1999">802.11b-1999</a>])</li>
<li><span id="D.Device:2.Device.WiFi.AccessPoint.AssociatedDevice.OperatingStandard.g"><em>g</em></span> ([<a href="#R.802.11g-2003">802.11g-2003</a>])</li>
<li><span id="D.Device:2.Device.WiFi.AccessPoint.AssociatedDevice.OperatingStandard.n"><em>n</em></span> ([<a href="#R.802.11n-2009">802.11n-2009</a>])</li>
<li><span id="D.Device:2.Device.WiFi.AccessPoint.AssociatedDevice.OperatingStandard.ac"><em>ac</em></span> ([<a href="#R.802.11ac-2013">802.11ac-2013</a>])</li>
<li><span id="D.Device:2.Device.WiFi.AccessPoint.AssociatedDevice.OperatingStandard.ax"><em>ax</em></span> ([<a href="#R.802.11ax">802.11ax</a>])</li></ul>

<div class="diffs"><p><strong>Changes in 2.13:</strong></p>

<ul>
<li>Added string <em>ax</em> enumeration</li></ul></div></td>
<td>-</td>
<td>2.10</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.WiFi.AccessPoint.AC.">Device.WiFi.AccessPoint.{i}.AC.{i}.</span></td>
<td><span title="object(4:4)">object(4:4)</span></td>
<td>R</td>
<td><p>This object contains parameters related to WiFi QoS for different 802.11e access categories (priorities). Access categories are: BE, BK, VI, and VO. These parameters can help control and monitor 802.11e Enhanced distributed channel access (EDCA). The size of this table is fixed, with four entries which are identified by the <a href="#D.Device:2.Device.WiFi.AccessPoint.AC.AccessCategory"><em>AccessCategory</em></a> parameter as follows:</p>

<ul>
<li>BE (Best Effort)</li>
<li>BK (Background)</li>
<li>VI (Video)</li>
<li>VO (Voice)</li></ul>

<p>This table MUST contain exactly 4 entries.</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.WiFi.AccessPoint.AC.AccessCategory"><em>AccessCategory</em></a>.</p></td>
<td>-</td>
<td>2.8</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.WiFi.AccessPoint.AC.Stats.">Device.WiFi.AccessPoint.{i}.AC.{i}.Stats.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object contains statistics for different 802.11e access categories (priorities). Packet counters here count 802.11 WiFi frames. If there are not separate stats for each access category, (e.g., 802.11e is not used and there is only one queue), then only access category 0 = BE applies (e.g., the statistics for the single queue are in access category 0 = BE). The CPE MUST reset the Access Point’s Stats parameters (unless otherwise stated in individual object or parameter descriptions) either when the Access Point becomes operationally down due to a previous administrative down (i.e. the Access Point’s Status parameter transitions to a <span class="removed">Diasbled</span><span class="inserted">Disabled</span> state) or when the Access Point becomes administratively up (i.e. the Access Point’s Enable parameter transitions from false to true). Administrative and operational status is discussed in <span class="removed">[Section 4.2.2/TR-181i2].</span><span class="inserted">[<a href="#R.TR-181i2">Section 4.2.2/TR-181i2</a>].</span></td>
<td>-</td>
<td>2.8</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.WiFi.EndPoint.">Device.WiFi.EndPoint.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>This object models an 802.11 connection from the perspective of a wireless end point. Each <em>EndPoint</em> entry is associated with a particular <a href="#D.Device:2.Device.WiFi.SSID."><em>SSID</em></a> interface instance via the <a href="#D.Device:2.Device.WiFi.EndPoint.SSIDReference"><em>SSIDReference</em></a> parameter, and an associated active <a href="#D.Device:2.Device.WiFi.EndPoint.Profile."><em>Profile</em></a> instance via the <a href="#D.Device:2.Device.WiFi.EndPoint.ProfileReference"><em>ProfileReference</em></a> parameter. The active profile is responsible for specifying the actual SSID and security settings used by the end point.
For enabled table entries, if <a href="#D.Device:2.Device.WiFi.EndPoint.SSIDReference"><em>SSIDReference</em></a> or <a href="#D.Device:2.Device.WiFi.EndPoint.ProfileReference"><em>ProfileReference</em></a> is not a valid reference then the table entry is inoperable and the CPE MUST set <a href="#D.Device:2.Device.WiFi.EndPoint.Status"><em>Status</em></a> to <a href="#D.Device:2.Device.WiFi.EndPoint.Status.Error_Misconfigured"><em>Error_Misconfigured</em></a>.
Note: The <em>EndPoint</em> table includes a unique key parameter that is a strong reference. If a strongly referenced object is deleted, the CPE will set the referencing parameter to an empty string. However, doing so under these circumstances might cause the updated <em>EndPoint</em> row to then violate the table’s unique key constraint; if this occurs, the CPE MUST set <a href="#D.Device:2.Device.WiFi.EndPoint.Status"><em>Status</em></a> to <a href="#D.Device:2.Device.WiFi.EndPoint.Status.Error_Misconfigured"><em>Error_Misconfigured</em></a> and disable the offending <em>EndPoint</em> row.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.WiFi.EndPoint.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.WiFi.EndPoint.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.
At most one enabled entry in this table can exist with a given value for <a href="#D.Device:2.Device.WiFi.EndPoint.SSIDReference"><em>SSIDReference</em></a>.</p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.WiFi.EndPoint.Security.">Device.WiFi.EndPoint.{i}.Security.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object contains security related parameters that apply to a WiFi end point [<a href="#R.802.11-2007">802.11-2007</a>].</td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.EndPoint.Security.ModesSupported">ModesSupported</span></td>
<td>string[]</td>
<td>R</td>
<td><p>Comma-separated list of strings. Indicates which security modes this <a href="#D.Device:2.Device.WiFi.EndPoint."><em>EndPoint</em></a> instance is capable of supporting.</p>

<p>Each list item is an enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.WiFi.EndPoint.Security.ModesSupported.None"><em>None</em></span></li>
<li><span id="D.Device:2.Device.WiFi.EndPoint.Security.ModesSupported.WEP-64"><em>WEP-64</em></span></li>
<li><span id="D.Device:2.Device.WiFi.EndPoint.Security.ModesSupported.WEP-128"><em>WEP-128</em></span></li>
<li><span id="D.Device:2.Device.WiFi.EndPoint.Security.ModesSupported.WPA-Personal"><em>WPA-Personal</em></span></li>
<li><span id="D.Device:2.Device.WiFi.EndPoint.Security.ModesSupported.WPA2-Personal"><em>WPA2-Personal</em></span></li>
<li><span id="D.Device:2.Device.WiFi.EndPoint.Security.ModesSupported.WPA3-Personal"><em>WPA3-Personal</em></span></li>
<li><span id="D.Device:2.Device.WiFi.EndPoint.Security.ModesSupported.WPA-WPA2-Personal"><em>WPA-WPA2-Personal</em></span></li>
<li><span id="D.Device:2.Device.WiFi.EndPoint.Security.ModesSupported.WPA3-Personal-Transition"><em>WPA3-Personal-Transition</em></span></li>
<li><span id="D.Device:2.Device.WiFi.EndPoint.Security.ModesSupported.WPA-Enterprise"><em>WPA-Enterprise</em></span></li>
<li><span id="D.Device:2.Device.WiFi.EndPoint.Security.ModesSupported.WPA2-Enterprise"><em>WPA2-Enterprise</em></span></li>
<li><span id="D.Device:2.Device.WiFi.EndPoint.Security.ModesSupported.WPA3-Enterprise"><em>WPA3-Enterprise</em></span></li>
<li><span id="D.Device:2.Device.WiFi.EndPoint.Security.ModesSupported.WPA-WPA2-Enterprise"><em>WPA-WPA2-Enterprise</em></span></li></ul>

<div class="diffs"><p><strong>Changes in 2.13:</strong></p>

<ul>
<li>Added string <em>WPA3-Personal</em> enumeration</li>
<li>Added string <em>WPA3-Personal-Transition</em> enumeration</li>
<li>Added string <em>WPA3-Enterprise</em> enumeration</li></ul></div></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.WiFi.EndPoint.Profile.">Device.WiFi.EndPoint.{i}.Profile.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>EndPoint Profile table.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.WiFi.EndPoint.Profile.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.WiFi.EndPoint.Profile.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.
At most one enabled entry in this table can exist with the same values for all of <a href="#D.Device:2.Device.WiFi.EndPoint.Profile.SSID"><em>SSID</em></a>, <a href="#D.Device:2.Device.WiFi.EndPoint.Profile.Location"><em>Location</em></a> and <a href="#D.Device:2.Device.WiFi.EndPoint.Profile.Priority"><em>Priority</em></a>.</p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.WiFi.EndPoint.Profile.Security.">Device.WiFi.EndPoint.{i}.Profile.{i}.Security.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object contains security related parameters that apply to a WiFi End Point profile [<a href="#R.802.11-2007">802.11-2007</a>].

<div class="diffs"><p><strong>Changes in 2.13:</strong></p>

<ul>
<li>Added <a href="#D.Device:2.Device.WiFi.EndPoint.Profile.Security.SAEPassphrase"><em>SAEPassphrase</em></a> parameter</li></ul></div></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.EndPoint.Profile.Security.PreSharedKey">PreSharedKey</span></td>
<td>hexBinary(:32)</td>
<td>W</td>
<td><p>A literal PreSharedKey (PSK) expressed as a hexadecimal string. <em>PreSharedKey</em> is only used if <a href="#D.Device:2.Device.WiFi.EndPoint.Profile.Security.ModeEnabled"><em>ModeEnabled</em></a> is set to <a href="#D.Device:2.Device.WiFi.EndPoint.Security.ModesSupported.WPA-Personal"><em>WPA-Personal</em></a> or <a href="#D.Device:2.Device.WiFi.EndPoint.Security.ModesSupported.WPA2-Personal"><em>WPA2-Personal</em></a> or <a href="#D.Device:2.Device.WiFi.EndPoint.Security.ModesSupported.WPA-WPA2-Personal"><em>WPA-WPA2-Personal</em></a>. If <a href="#D.Device:2.Device.WiFi.EndPoint.Profile.Security.KeyPassphrase"><em>KeyPassphrase</em></a> is written, then <em>PreSharedKey</em> is immediately generated. The <span class="removed">ACS</span><span class="inserted">Controller</span> SHOULD NOT set both the <a href="#D.Device:2.Device.WiFi.EndPoint.Profile.Security.KeyPassphrase"><em>KeyPassphrase</em></a> and the <em>PreSharedKey</em> directly (the result of doing this is undefined).</p>

<p>When read, this parameter returns an empty string, regardless of the actual value.</p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.EndPoint.Profile.Security.KeyPassphrase">KeyPassphrase</span></td>
<td>string(8:63)</td>
<td>W</td>
<td><p>A passphrase from which the <a href="#D.Device:2.Device.WiFi.EndPoint.Profile.Security.PreSharedKey"><em>PreSharedKey</em></a> is to be generated, for <a href="#D.Device:2.Device.WiFi.EndPoint.Security.ModesSupported.WPA-Personal"><em>WPA-Personal</em></a> or <a href="#D.Device:2.Device.WiFi.EndPoint.Security.ModesSupported.WPA2-Personal"><em>WPA2-Personal</em></a> or <a href="#D.Device:2.Device.WiFi.EndPoint.Security.ModesSupported.WPA-WPA2-Personal"><em>WPA-WPA2-Personal</em></a> security modes. If <em>KeyPassphrase</em> is written, then <a href="#D.Device:2.Device.WiFi.EndPoint.Profile.Security.PreSharedKey"><em>PreSharedKey</em></a> is immediately generated. The <span class="removed">ACS</span><span class="inserted">Controller</span> SHOULD NOT set both the <em>KeyPassphrase</em> and the <a href="#D.Device:2.Device.WiFi.EndPoint.Profile.Security.PreSharedKey"><em>PreSharedKey</em></a> directly (the result of doing this is undefined). The key is generated as specified by WPA, which uses PBKDF2 from PKCS #5: Password-based Cryptography Specification Version 2.0 [<a href="#R.RFC2898">RFC2898</a>].</p>

<p>When read, this parameter returns an empty string, regardless of the actual value.</p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.EndPoint.Profile.Security.SAEPassphrase">SAEPassphrase</span></td>
<td>string</td>
<td>W</td>
<td><p>A passphrase for <a href="#D.Device:2.Device.WiFi.EndPoint.Security.ModesSupported.WPA3-Personal"><em>WPA3-Personal</em></a> or <a href="#D.Device:2.Device.WiFi.EndPoint.Security.ModesSupported.WPA3-Personal-Transition"><em>WPA3-Personal-Transition</em></a> security modes.
NOTE: this parameter is for WPA3. WPA2 <a href="#D.Device:2.Device.WiFi.EndPoint.Profile.Security.PreSharedKey"><em>PreSharedKey</em></a> is generated from <a href="#D.Device:2.Device.WiFi.EndPoint.Profile.Security.KeyPassphrase"><em>KeyPassphrase</em></a>.</p>

<p>When read, this parameter returns an empty string, regardless of the actual value.</p></td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.EndPoint.Profile.Security.MFPConfig">MFPConfig</span></td>
<td>string</td>
<td>W</td>
<td><p>Management Frame Protection configuration applicable when <a href="#D.Device:2.Device.WiFi.EndPoint.Profile.Security.ModeEnabled"><em>ModeEnabled</em></a> is set to <a href="#D.Device:2.Device.WiFi.EndPoint.Security.ModesSupported.WPA2-Personal"><em>WPA2-Personal</em></a><span class="removed"> or</span><span class="inserted">,</span> <a href="#D.Device:2.Device.WiFi.EndPoint.Security.ModesSupported.WPA2-Enterprise"><em>WPA2-Enterprise</em></a><span class="inserted">, <a href="#D.Device:2.Device.WiFi.EndPoint.Security.ModesSupported.WPA3-Personal"><em>WPA3-Personal</em></a>, or <a href="#D.Device:2.Device.WiFi.EndPoint.Security.ModesSupported.WPA3-Enterprise"><em>WPA3-Enterprise</em></a>. When in WPA3 modes, <em>MFPConfig</em> MUST be set to <a href="#D.Device:2.Device.WiFi.EndPoint.Profile.Security.MFPConfig.Required"><em>Required</em></a></span>.</p>

<p>Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.WiFi.EndPoint.Profile.Security.MFPConfig.Disabled"><em>Disabled</em></span></li>
<li><span id="D.Device:2.Device.WiFi.EndPoint.Profile.Security.MFPConfig.Optional"><em>Optional</em></span></li>
<li><span id="D.Device:2.Device.WiFi.EndPoint.Profile.Security.MFPConfig.Required"><em>Required</em></span></li></ul></td>
<td>Disabled</td>
<td>2.11</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.WiFi.EndPoint.AC.">Device.WiFi.EndPoint.{i}.AC.{i}.</span></td>
<td><span title="object(4:4)">object(4:4)</span></td>
<td>R</td>
<td><p>This object contains parameters related to WiFi QoS for different 802.11e access categories (priorities). Access categories are: BE, BK, VI, and VO. These parameters can help control and monitor 802.11e Enhanced distributed channel access (EDCA). The size of this table is fixed, with four entries which are identified by the <a href="#D.Device:2.Device.WiFi.EndPoint.AC.AccessCategory"><em>AccessCategory</em></a> parameter as follows:</p>

<ul>
<li>BE (Best Effort)</li>
<li>BK (Background)</li>
<li>VI (Video)</li>
<li>VO (Voice)</li></ul>

<p>This table MUST contain exactly 4 entries.</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.WiFi.EndPoint.AC.AccessCategory"><em>AccessCategory</em></a>.</p></td>
<td>-</td>
<td>2.8</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.WiFi.EndPoint.AC.Stats.">Device.WiFi.EndPoint.{i}.AC.{i}.Stats.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object contains statistics for different 802.11e access categories (priorities). Packet counters here count 802.11 WiFi frames. If there are not separate stats for each access category, (e.g., 802.11e is not used and there is only one queue), then only access category 0 = BE applies (e.g., the statistics for the single queue are in access category 0 = BE). The CPE MUST reset the EndPoint’s Stats parameters (unless otherwise stated in individual object or parameter descriptions) either when the EndPoint becomes operationally down due to a previous administrative down (i.e. the EndPoint’s Status parameter transitions to a <span class="removed">Diasbled</span><span class="inserted">Disabled</span> state) or when the EndPoint becomes administratively up (i.e. the EndPoint’s Enable parameter transitions from false to true). Administrative and operational status is discussed in <span class="removed">[Section 4.2.2/TR-181i2].</span><span class="inserted">[<a href="#R.TR-181i2">Section 4.2.2/TR-181i2</a>].</span></td>
<td>-</td>
<td>2.8</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.ZigBee.">Device.ZigBee.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>Top level object for ZigBee capabilities based on the [<a href="#R.ZigBee2007">ZigBee2007</a>] specification.</td>
<td>-</td>
<td>2.7</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.ZigBee.Discovery.">Device.ZigBee.Discovery.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object is used for managing the discovery of ZigBee devices within a ZigBee Area Network. ZigBee Devices are discovered via the <a href="#D.Device:2.Device.ZigBee.ZDO."><em>ZDO</em></a> instance associated with the ZigBee Coordinator of an Area Network.</td>
<td>-</td>
<td>2.7</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.ZigBee.Discovery.AreaNetwork.">Device.ZigBee.Discovery.AreaNetwork.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>This object specifies the ZigBee devices that are discovered by the <a href="#D.Device:2.Device.ZigBee.Discovery.AreaNetwork.Coordinator"><em>Coordinator</em></a>.
As the ZigBee specification does not provide a discovery protocol between the CWMP proxy and the ZigBee coordinator, the <em>AreaNetwork</em> object is provisioned and not discovered.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.ZigBee.Discovery.AreaNetwork.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.ZigBee.Discovery.AreaNetwork.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.
At most one enabled entry in this table can exist with a given value for <a href="#D.Device:2.Device.ZigBee.Discovery.AreaNetwork.Coordinator"><em>Coordinator</em></a>.</p></td>
<td>-</td>
<td>2.7</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.ZigBee.Discovery.AreaNetwork.Coordinator">Coordinator</span></td>
<td>string(:256)</td>
<td>W</td>
<td>The Fully Qualified Domain Name (FQDN) or IP address of the ZigBee Coordinator. The coordinator MAY be located within the CPE. In this scenario the <span class="removed">ACS</span><span class="inserted">Controller</span> or CPE MAY use the value of &ldquo;localhost&rdquo;.</td>
<td>-</td>
<td>2.7</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.Bridging.">Device.Bridging.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>Layer 2 bridging configuration. Specifies bridges between different layer 2 interfaces. Bridges can be defined to include layer 2 filter criteria to selectively bridge traffic between interfaces.
This object can be used to configure both 802.1D [<a href="#R.802.1D-2004">802.1D-2004</a>] and 802.1Q [<a href="#R.802.1Q-2011">802.1Q-2011</a>] bridges.
Not all 802.1D and 802.1Q features are modeled, and some additional features not present in either 802.1D or 802.1Q are modeled.
802.1Q [<a href="#R.802.1Q-2011">802.1Q-2011</a>] bridges incorporate 802.1Q [<a href="#R.802.1Q-2005">802.1Q-2005</a>] customer and 802.1ad [<a href="#R.802.1ad-2005">802.1ad-2005</a>] provider bridges.</td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.Bridging.Bridge.">Device.Bridging.Bridge.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>Bridge table.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.Bridging.Bridge.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.Bridging.Bridge.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.</p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.Bridging.Bridge.Port.">Device.Bridging.Bridge.{i}.Port.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>Bridge Port table, which MUST contain an entry for each bridge port (a stackable interface object as described in [<a href="#R.TR-181i2">Section 4.2/TR-181i2</a>]).
There are two types of bridge ports: management (upward facing) and non-management (downward facing). This is determined by configuring the Boolean <a href="#D.Device:2.Device.Bridging.Bridge.Port.ManagementPort"><em>ManagementPort</em></a> parameter. The CPE will automatically configure each management bridge port to appear in the interface stack above all non-management bridge ports that share the same <a href="#D.Device:2.Device.Bridging.Bridge."><em>Bridge</em></a> instance.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.Bridging.Bridge.Port.Alias"><em>Alias</em></a>, or with a given value for <a href="#D.Device:2.Device.Bridging.Bridge.Port.Name"><em>Name</em></a>. On creation of a new table entry, the Agent MUST choose initial values for <a href="#D.Device:2.Device.Bridging.Bridge.Port.Alias"><em>Alias</em></a> and <a href="#D.Device:2.Device.Bridging.Bridge.Port.Name"><em>Name</em></a> such that the new entry does not conflict with any existing entries.</p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.Bridging.Bridge.Port.LowerLayers">LowerLayers</span></td>
<td>string[](:1024)</td>
<td>W</td>
<td>Comma-separated list (maximum number of characters 1024) of strings. Each list item MUST be the Path Name of an interface object that is stacked immediately below this interface object, or an empty string. See [<a href="#R.TR-181i2">Section 4.2.1/TR-181i2</a>]. When <a href="#D.Device:2.Device.Bridging.Bridge.Port.ManagementPort"><em>ManagementPort</em></a> is set to <em>true</em> the CPE MUST set <em>LowerLayers</em> to reference all non-management bridge ports that are within the same <a href="#D.Device:2.Device.Bridging.Bridge."><em>Bridge</em></a> instance (and update <em>LowerLayers</em> when subsequent non-management bridge ports are added or deleted on that <em>Bridge</em>). The <span class="removed">ACS</span><span class="inserted">Controller</span> SHOULD NOT set <em>LowerLayers</em> in this case.</td>
<td><em>&lt;Empty&gt;</em></td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.Bridging.ProviderBridge.">Device.Bridging.ProviderBridge.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>Provider Bridge table.
A Provider Bridge is described in [<a href="#R.802.1Q-2011">Section 5.10 Provider Bridge conformance/802.1Q-2011</a>] as an entity that is comprised of one S-VLAN component and zero or more C-VLAN components. S-VLAN and C-VLAN components are modelled as instances of <a href="#D.Device:2.Device.Bridging.Bridge."><em>Bridge</em></a> objects.
When <a href="#D.Device:2.Device.Bridging.ProviderBridge.Type"><em>Type</em></a> is configured with value of <a href="#D.Device:2.Device.Bridging.ProviderBridge.Type.PE"><em>PE</em></a> VLAN tags from the S-VLAN component (outer of 2 VLAN tags) are stacked on top of the VLAN tag from the C-VLAN component (inner of 2 VLAN tags).
When <a href="#D.Device:2.Device.Bridging.ProviderBridge.Type"><em>Type</em></a> is configured with value of <a href="#D.Device:2.Device.Bridging.ProviderBridge.Type.S-VLAN"><em>S-VLAN</em></a> only VLAN tags from the S-VLAN component are utilized.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.Bridging.ProviderBridge.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.Bridging.ProviderBridge.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.</p></td>
<td>-</td>
<td>2.7</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.Bridging.ProviderBridge.Alias">Alias</span></td>
<td><span title="Alias">string(:64)</span></td>
<td>W</td>
<td><p><span class="removed">A non-volatile handle used to reference this instance. This parameter provides a mechanism for an ACS to label this instance for future reference. An initial unique value MUST be assigned when the CPE creates an instance of this object.</span></p>

<div class="inserted"><p>[<a href="#T.Alias">Alias</a>] A non-volatile handle used to reference this instance. Alias provides a
mechanism for an ACS to label this instance for future reference.</p>

<p>If the CPE supports the Alias-based Addressing feature as defined in
[<a href="#R.TR-069">Section 3.6.1/TR-069</a>] and described in [<a href="#R.TR-069">Appendix II/TR-069</a>],
the following mandatory constraints MUST be enforced:</p>

<ul>
<li>Its value MUST NOT be empty.</li>
<li>Its value MUST start with a letter.</li>
<li>If its value is not assigned by the ACS, it MUST start with a &ldquo;cpe-&rdquo;
prefix.</li>
<li>The CPE MUST NOT change the parameter value.</li></ul></div>

<p>The Agent MUST choose an initial value that doesn’t conflict with any existing entries.</p>

<div class="diffs"><p><strong>Changes in 2.13:</strong></p>

<ul>
<li>Removed <em>string(:64)</em> syntax</li>
<li>Added <em>Alias</em></li></ul></div></td>
<td>-</td>
<td>2.7</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.IP.">Device.IP.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>IP object that contains the <a href="#D.Device:2.Device.IP.Interface."><em>Interface</em></a>, <a href="#D.Device:2.Device.IP.ActivePort."><em>ActivePort</em></a>, and <a href="#D.Device:2.Device.IP.Diagnostics."><em>Diagnostics</em></a> objects.</td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.IP.Interface.">Device.IP.Interface.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>IP interface table (a stackable interface object as described in [<a href="#R.TR-181i2">Section 4.2/TR-181i2</a>]). This table models the layer 3 IP interface. Each IP interface can be attached to the IPv4 and/or IPv6 stack. The interface’s IP addresses and prefixes are listed in the <a href="#D.Device:2.Device.IP.Interface.IPv4Address."><em>IPv4Address</em></a>, <a href="#D.Device:2.Device.IP.Interface.IPv6Address."><em>IPv6Address</em></a> and <a href="#D.Device:2.Device.IP.Interface.IPv6Prefix."><em>IPv6Prefix</em></a> tables. Note that support for manipulating <a href="#D.Device:2.Device.IP.Interface.Loopback"><em>Loopback</em></a> interfaces is OPTIONAL, so the implementation MAY choose not to create (or allow the <span class="removed">ACS</span><span class="inserted">Controller</span> to create) <em>Interface</em> instances of type <a href="#D.Device:2.Device.IP.Interface.Type.Loopback"><em>Loopback</em></a>. When the <span class="removed">ACS</span><span class="inserted">Controller</span> administratively disables the interface, i.e. sets <a href="#D.Device:2.Device.IP.Interface.Enable"><em>Enable</em></a> to <em>false</em>, the interface’s automatically-assigned IP addresses and prefixes MAY be retained. When the <span class="removed">ACS</span><span class="inserted">Controller</span> administratively enables the interface, i.e. sets <a href="#D.Device:2.Device.IP.Interface.Enable"><em>Enable</em></a> to <em>true</em>, these IP addresses and prefixes MUST be refreshed. It’s up to the implementation to decide exactly what this means: it SHOULD take all reasonable steps to refresh everything but if it is unable, for example, to refresh a prefix that still has a significant lifetime, it might well choose to retain rather than discard it. Any <a href="#D.Device:2.Device.IP.Interface.Type.Tunneled"><em>Tunneled</em></a> IP interface instances instantiated by the CPE MUST NOT have any statistics, writable parameters, IP addresses or IPv6 prefixes. Any read-only parameters, e.g. <a href="#D.Device:2.Device.IP.Interface.Status"><em>Status</em></a>, MUST return the same information as for the corresponding <a href="#D.Device:2.Device.IP.Interface.Type.Tunnel"><em>Tunnel</em></a> interface. The reason for these rules is that <a href="#D.Device:2.Device.IP.Interface.Type.Tunneled"><em>Tunneled</em></a> IP interfaces exist only in order to be the targets of references (within the data model) and do not model any concepts over and above those already modeled by the <a href="#D.Device:2.Device.IP.Interface.Type.Tunnel"><em>Tunnel</em></a> IP interfaces. Note that <a href="#D.Device:2.Device.IP.Interface.Type.Tunnel"><em>Tunnel</em></a> and <a href="#D.Device:2.Device.IP.Interface.Type.Tunneled"><em>Tunneled</em></a> IP interfaces are part of a legacy mechanism that is only used for <a href="#D.Device:2.Device.IPv6rd."><em>IPv6rd</em></a>, <a href="#D.Device:2.Device.DSLite."><em>DSLite</em></a> and <a href="#D.Device:2.Device.IPsec."><em>IPsec</em></a> tunnels and MUST NOT be used in any other context. For all other tunneling mechanisms <a href="#D.Device:2.Device.IP.Interface.Type.Normal"><em>Normal</em></a> IP interfaces are stacked above technology-specific Tunnel Interfaces, e.g. above <a href="#D.Device:2.Device.GRE.Tunnel.Interface."><em>GRE.Tunnel.{i}.Interface</em></a> or <a href="#D.Device:2.Device.MAP.Domain.Interface."><em>MAP.Domain.{i}.Interface</em></a> objects.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.IP.Interface.Alias"><em>Alias</em></a>, or with a given value for <a href="#D.Device:2.Device.IP.Interface.Name"><em>Name</em></a>. On creation of a new table entry, the Agent MUST choose initial values for <a href="#D.Device:2.Device.IP.Interface.Alias"><em>Alias</em></a> and <a href="#D.Device:2.Device.IP.Interface.Name"><em>Name</em></a> such that the new entry does not conflict with any existing entries.</p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.IP.Interface.IPv4Address.">Device.IP.Interface.{i}.IPv4Address.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>IPv4 address table. Entries are auto-created and auto-deleted as IP addresses are added and deleted via DHCP, auto-IP, or IPCP. Static entries are created and configured by the <span class="removed">ACS.</span><span class="inserted">Controller.</span></p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.IP.Interface.IPv4Address.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.IP.Interface.IPv4Address.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.
At most one enabled entry in this table can exist with the same values for both <a href="#D.Device:2.Device.IP.Interface.IPv4Address.IPAddress"><em>IPAddress</em></a> and <a href="#D.Device:2.Device.IP.Interface.IPv4Address.SubnetMask"><em>SubnetMask</em></a>.</p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.IP.Interface.IPv6Address.">Device.IP.Interface.{i}.IPv6Address.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>This table contains the IP interface’s IPv6 unicast addresses. There MUST be an entry for each such address, including anycast addresses. There are several ways in which entries can be added to and deleted from this table, including: * Automatically via SLAAC [<a href="#R.RFC4862">RFC4862</a>], which covers generation of link-local addresses (for all types of device) and global addresses (for non-router devices). * Automatically via DHCPv6 [<a href="#R.RFC3315">RFC3315</a>], which covers generation of any type of address (subject to the configured DHCP server policy). * Manually via a GUI or some other local management interface. * Manually via factory default configuration. * By the <span class="removed">ACS.</span><span class="inserted">Controller.</span> This table MUST NOT include entries for the Subnet-Router anycast address [<a href="#R.RFC4291">Section 2.6.1/RFC4291</a>]. Such entries would be identical to others but with a zero interface identifier, and would add no value. A loopback interface will always have address <em>::1</em> [<a href="#R.RFC4291">Section 2.5.3/RFC4291</a>] and MAY also have link-local address <em>fe80::1</em>. This object is based on <em>ipAddressTable</em> from [<a href="#R.RFC4293">RFC4293</a>].</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.IP.Interface.IPv6Address.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.IP.Interface.IPv6Address.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.
At most one enabled entry in this table can exist with a given value for <a href="#D.Device:2.Device.IP.Interface.IPv6Address.IPAddress"><em>IPAddress</em></a>.</p></td>
<td>-</td>
<td>2.2</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.IP.Interface.IPv6Address.Origin">Origin</span></td>
<td>string</td>
<td>R</td>
<td><p>Mechanism via which the IP address was assigned. Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.IP.Interface.IPv6Address.Origin.AutoConfigured"><em>AutoConfigured</em></span> (Automatically generated. For example, a link-local address as specified by SLAAC [<a href="#R.RFC4862">Section 5.3/RFC4862</a>], a global address as specified by SLAAC [<a href="#R.RFC4862">Section 5.5/RFC4862</a>], or generated via CPE logic (e.g. from delegated prefix as specified by [<a href="#R.RFC3633">RFC3633</a>]), or from ULA /48 prefix as specified by [<a href="#R.RFC4193">RFC4193</a>])</li>
<li><span id="D.Device:2.Device.IP.Interface.IPv6Address.Origin.DHCPv6"><em>DHCPv6</em></span> (Assigned by DHCPv6 [<a href="#R.RFC3315">RFC3315</a>])</li>
<li><span id="D.Device:2.Device.IP.Interface.IPv6Address.Origin.IKEv2"><em>IKEv2</em></span> (Assigned by IKEv2 [<a href="#R.RFC5996">RFC5996</a>])</li>
<li><span id="D.Device:2.Device.IP.Interface.IPv6Address.Origin.MAP"><em>MAP</em></span> (Assigned by MAP [<a href="#R.RFC7597">RFC7597</a>], i.e. is this interface’s <em>MAP IPv6 address</em>)</li>
<li><span id="D.Device:2.Device.IP.Interface.IPv6Address.Origin.WellKnown"><em>WellKnown</em></span> (Specified by a standards organization, e.g. the <em>::1</em> loopback address, which is defined in [<a href="#R.RFC4291">RFC4291</a>])</li>
<li><span id="D.Device:2.Device.IP.Interface.IPv6Address.Origin.Static"><em>Static</em></span> (For example, present in the factory default configuration (but not <a href="#D.Device:2.Device.IP.Interface.IPv6Address.Origin.WellKnown"><em>WellKnown</em></a>), created by the <span class="inserted">Controller,</span> or created by some other management entity (e.g. via a GUI))
This parameter is based on <em>ipOrigin</em> from [<a href="#R.RFC4293">RFC4293</a>].</li></ul></td>
<td>Static</td>
<td>2.2</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.IP.Interface.IPv6Prefix.">Device.IP.Interface.{i}.IPv6Prefix.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>This table contains the interface’s IPv6 prefixes. There MUST be an entry for each such prefix, not only for prefixes learned from router advertisements. There are several ways in which entries can be added to and deleted from this table, including: * Automatically via [<a href="#R.RFC4861">RFC4861</a>] Router Advertisements. See also <a href="#D.Device:2.Device.RouterAdvertisement."><em>RouterAdvertisement</em></a>. * Automatically via DHCPv6 [<a href="#R.RFC3315">RFC3315</a>] prefix delegation [<a href="#R.RFC3633">RFC3633</a>]. See also <a href="#D.Device:2.Device.DHCPv6.Client."><em>DHCPv6.Client</em></a>. * Automatically via internal CPE logic, e.g. creation of child prefixes derived from a parent prefix. * Manually via a GUI or some other local management interface. * Manually via factory default configuration. * By the <span class="removed">ACS.</span><span class="inserted">Controller.</span> The CPE MAY choose not to create <em>IPv6Prefix</em> entries for <a href="#D.Device:2.Device.IP.Interface.IPv6Prefix.Origin.WellKnown"><em>WellKnown</em></a> prefixes or for the ULA /48 prefix [<a href="#R.RFC4193">RFC4193</a>]. If an <em>IPv6Prefix</em> entry exists for the ULA /48 prefix, it MUST be on a downstream interface (i.e. an interface for which the physical layer interface object has <em>Upstream</em> = <em>false</em>). This object is based on <em>ipAddressPrefixTable</em> from [<a href="#R.RFC4293">RFC4293</a>].</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.IP.Interface.IPv6Prefix.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.IP.Interface.IPv6Prefix.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.
At most one enabled entry in this table can exist with a given value for <a href="#D.Device:2.Device.IP.Interface.IPv6Prefix.Prefix"><em>Prefix</em></a>.</p></td>
<td>-</td>
<td>2.2</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.IP.Interface.IPv6Prefix.Origin">Origin</span></td>
<td>string</td>
<td>R</td>
<td><p>Mechanism via which the prefix was assigned or most recently updated.</p>

<p>Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.IP.Interface.IPv6Prefix.Origin.AutoConfigured"><em>AutoConfigured</em></span> (Generated via internal CPE logic (e.g. the ULA /48 prefix) or derived from an internal prefix that is not modeled in any <a href="#D.Device:2.Device.IP.Interface.IPv6Prefix."><em>IPv6Prefix</em></a> table)</li>
<li><span id="D.Device:2.Device.IP.Interface.IPv6Prefix.Origin.PrefixDelegation"><em>PrefixDelegation</em></span> (Delegated via DHCPv6 [<a href="#R.RFC3633">RFC3633</a>] or some other protocol, e.g. IPv6rd [<a href="#R.RFC5969">RFC5969</a>]. Also see <a href="#D.Device:2.Device.IP.Interface.IPv6Prefix.StaticType"><em>StaticType</em></a>)</li>
<li><span id="D.Device:2.Device.IP.Interface.IPv6Prefix.Origin.RouterAdvertisement"><em>RouterAdvertisement</em></span> (Discovered via router advertisement [<a href="#R.RFC4861">RFC4861</a>] Prefix Information Option)</li>
<li><span id="D.Device:2.Device.IP.Interface.IPv6Prefix.Origin.WellKnown"><em>WellKnown</em></span> (Specified by a standards organization, e.g. <em>fe80::/10</em> for link-local addresses, or <em>::1/128</em> for the loopback address, both of which are defined in [<a href="#R.RFC4291">RFC4291</a>])</li>
<li><span id="D.Device:2.Device.IP.Interface.IPv6Prefix.Origin.Static"><em>Static</em></span> (Created by the <span class="inserted">Controller,</span> by some other management entity (e.g. via a GUI), or present in the factory default configuration (but not <a href="#D.Device:2.Device.IP.Interface.IPv6Prefix.Origin.WellKnown"><em>WellKnown</em></a>). Unrelated to any shorter length prefix that might exist on the CPE. Also see <a href="#D.Device:2.Device.IP.Interface.IPv6Prefix.StaticType"><em>StaticType</em></a>. Can be used for RA (Prefix Information), DHCPv6 address assignment (IA_NA) or DHCPv6 prefix delegation (IA_PD))</li>
<li><span id="D.Device:2.Device.IP.Interface.IPv6Prefix.Origin.Child"><em>Child</em></span> (Derived from an associated <a href="#D.Device:2.Device.IP.Interface.IPv6Prefix.Origin.AutoConfigured"><em>AutoConfigured</em></a> or <a href="#D.Device:2.Device.IP.Interface.IPv6Prefix.Origin.PrefixDelegation"><em>PrefixDelegation</em></a> parent prefix. Also see <a href="#D.Device:2.Device.IP.Interface.IPv6Prefix.StaticType"><em>StaticType</em></a>, <a href="#D.Device:2.Device.IP.Interface.IPv6Prefix.ParentPrefix"><em>ParentPrefix</em></a> and <a href="#D.Device:2.Device.IP.Interface.IPv6Prefix.ChildPrefixBits"><em>ChildPrefixBits</em></a>. Can be used for RA (Prefix Information), DHCPv6 address assignment (IA_NA) or DHCPv6 prefix delegation (IA_PD))
Note that:</li>
<li><a href="#D.Device:2.Device.IP.Interface.IPv6Prefix.Origin.PrefixDelegation"><em>PrefixDelegation</em></a> and <a href="#D.Device:2.Device.IP.Interface.IPv6Prefix.Origin.RouterAdvertisement"><em>RouterAdvertisement</em></a> prefixes can exist only on upstream interfaces (i.e. interfaces for which the physical layer interface object has <em>Upstream</em> = <em>true</em>),</li>
<li><a href="#D.Device:2.Device.IP.Interface.IPv6Prefix.Origin.AutoConfigured"><em>AutoConfigured</em></a> and <a href="#D.Device:2.Device.IP.Interface.IPv6Prefix.Origin.WellKnown"><em>WellKnown</em></a> prefixes can exist on any interface, and</li>
<li><a href="#D.Device:2.Device.IP.Interface.IPv6Prefix.Origin.Static"><em>Static</em></a> and <a href="#D.Device:2.Device.IP.Interface.IPv6Prefix.Origin.Child"><em>Child</em></a> prefixes can exist only on downstream interfaces (i.e. interfaces for which the physical layer interface object has <em>Upstream</em> = <em>false</em>).
Also note that a <a href="#D.Device:2.Device.IP.Interface.IPv6Prefix.Origin.Child"><em>Child</em></a> prefix’s <a href="#D.Device:2.Device.IP.Interface.IPv6Prefix.ParentPrefix"><em>ParentPrefix</em></a> will always be an <a href="#D.Device:2.Device.IP.Interface.IPv6Prefix.Origin.AutoConfigured"><em>AutoConfigured</em></a>, <a href="#D.Device:2.Device.IP.Interface.IPv6Prefix.Origin.PrefixDelegation"><em>PrefixDelegation</em></a>, or <a href="#D.Device:2.Device.IP.Interface.IPv6Prefix.Origin.RouterAdvertisement"><em>RouterAdvertisement</em></a> prefix.
This parameter is based on <em>ipAddressOrigin</em> from [<a href="#R.RFC4293">RFC4293</a>].</li></ul></td>
<td>Static</td>
<td>2.2</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.IP.Interface.IPv6Prefix.StaticType">StaticType</span></td>
<td>string</td>
<td>W</td>
<td><p>Static prefix sub-type. For a <a href="#D.Device:2.Device.IP.Interface.IPv6Prefix.Origin.Static"><em>Static</em></a> prefix, this can be set to <a href="#D.Device:2.Device.IP.Interface.IPv6Prefix.StaticType.PrefixDelegation"><em>PrefixDelegation</em></a> or <a href="#D.Device:2.Device.IP.Interface.IPv6Prefix.StaticType.Child"><em>Child</em></a>, thereby creating an unconfigured prefix of the specified type that will be populated in preference to creating a new instance. This allows the <span class="removed">ACS</span><span class="inserted">Controller</span> to pre-create &ldquo;prefix slots&rdquo; with known path names that can be referenced from elsewhere in the data model before they have been populated.</p>

<p>Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.IP.Interface.IPv6Prefix.StaticType.Static"><em>Static</em></span> (Prefix is a &ldquo;normal&rdquo; <a href="#D.Device:2.Device.IP.Interface.IPv6Prefix.Origin.Static"><em>Static</em></a> prefix)</li>
<li><span id="D.Device:2.Device.IP.Interface.IPv6Prefix.StaticType.Inapplicable"><em>Inapplicable</em></span> (Prefix is not <a href="#D.Device:2.Device.IP.Interface.IPv6Prefix.Origin.Static"><em>Static</em></a>, so this parameter does not apply, READONLY)</li>
<li><span id="D.Device:2.Device.IP.Interface.IPv6Prefix.StaticType.PrefixDelegation"><em>PrefixDelegation</em></span> (Prefix will be populated when a <a href="#D.Device:2.Device.IP.Interface.IPv6Prefix.Origin.PrefixDelegation"><em>PrefixDelegation</em></a> prefix needs to be created)</li>
<li><span id="D.Device:2.Device.IP.Interface.IPv6Prefix.StaticType.Child"><em>Child</em></span> (Prefix will be populated when a <a href="#D.Device:2.Device.IP.Interface.IPv6Prefix.Origin.Child"><em>Child</em></a> prefix needs to be created. In this case, the <span class="inserted">Controller</span> needs also to set <a href="#D.Device:2.Device.IP.Interface.IPv6Prefix.ParentPrefix"><em>ParentPrefix</em></a> and might want to set <a href="#D.Device:2.Device.IP.Interface.IPv6Prefix.ChildPrefixBits"><em>ChildPrefixBits</em></a> (if parent prefix is not set, or goes away, then the child prefix will become operationally disabled))
This mechanism works as follows: * When this parameter is set to <a href="#D.Device:2.Device.IP.Interface.IPv6Prefix.StaticType.PrefixDelegation"><em>PrefixDelegation</em></a> or <a href="#D.Device:2.Device.IP.Interface.IPv6Prefix.StaticType.Child"><em>Child</em></a>, the instance becomes a &ldquo;prefix slot&rdquo; of the specified type. * Such an instance can be administratively enabled (<a href="#D.Device:2.Device.IP.Interface.IPv6Prefix.Enable"><em>Enable</em></a> = <em>true</em>) but will remain operationally disabled (<a href="#D.Device:2.Device.IP.Interface.IPv6Prefix.Status"><em>Status</em></a> = <a href="#D.Device:2.Device.IP.Interface.IPv6Prefix.Status.Disabled"><em>Disabled</em></a>) until it has been populated. * When a new prefix of of type T is needed, the CPE will look for a matching unpopulated instance, i.e. an instance with (<a href="#D.Device:2.Device.IP.Interface.IPv6Prefix.Origin"><em>Origin</em></a>,<em>StaticType</em>,<a href="#D.Device:2.Device.IP.Interface.IPv6Prefix.Prefix"><em>Prefix</em></a>) = (<a href="#D.Device:2.Device.IP.Interface.IPv6Prefix.Origin.Static"><em>Static</em></a>,T,““). If the CPE finds at least one such instance it will choose one and populate it. If already administratively enabled it will immediately become operationally enabled. If the CPE finds no such instances, it will create and populate a new instance with (<a href="#D.Device:2.Device.IP.Interface.IPv6Prefix.Origin"><em>Origin</em></a>,<em>StaticType</em>) = (T,T). If the CPE finds more than one such instance, the algorithm via which it chooses which instance to populate is implementation-specific. * When a prefix that was populated via this mechanism becomes invalid, the CPE will reset <a href="#D.Device:2.Device.IP.Interface.IPv6Prefix.Prefix"><em>Prefix</em></a> to an empty string. This does not affect the value of the <a href="#D.Device:2.Device.IP.Interface.IPv6Prefix.Enable"><em>Enable</em></a> parameter. The prefix <em>StaticType</em> can only be modified if <a href="#D.Device:2.Device.IP.Interface.IPv6Prefix.Origin"><em>Origin</em></a> is <a href="#D.Device:2.Device.IP.Interface.IPv6Prefix.Origin.Static"><em>Static</em></a>.</li></ul></td>
<td>Static</td>
<td>2.2</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.IP.Diagnostics.">Device.IP.Diagnostics.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>The IP Diagnostics object.</td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.">Device.IP.Diagnostics.DownloadDiagnostics.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object defines the diagnostics configuration for a HTTP and FTP DownloadDiagnostics Test.
Files received in the DownloadDiagnostics do not require file storage on the CPE device.</td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState">DiagnosticsState</span></td>
<td><span title="DiagnosticsState">string</span></td>
<td>W</td>
<td><p>[Indicate the availability of diagnostic data. Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.None"><em>None</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Requested"><em>Requested</em></span></li>
<li><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Complete"><em>Complete</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Completed"><em>Completed</em></span> (READONLY, DEPRECATED)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Error_CannotResolveHostName"><em>Error_CannotResolveHostName</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Error_NoRouteToHost"><em>Error_NoRouteToHost</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Error_InitConnectionFailed"><em>Error_InitConnectionFailed</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Error_NoResponse"><em>Error_NoResponse</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Error_TransferFailed"><em>Error_TransferFailed</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Error_PasswordRequestFailed"><em>Error_PasswordRequestFailed</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Error_LoginFailed"><em>Error_LoginFailed</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Error_NoTransferMode"><em>Error_NoTransferMode</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Error_NoPASV"><em>Error_NoPASV</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Error_IncorrectSize"><em>Error_IncorrectSize</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Error_Timeout"><em>Error_Timeout</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Error_Internal"><em>Error_Internal</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Error_Other"><em>Error_Other</em></span> (READONLY)
If the ACS sets the value of this parameter to <a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Requested"><em>Requested</em></a>, the CPE MUST initiate the corresponding diagnostic test. When writing, the only allowed value is <a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Requested"><em>Requested</em></a>. To ensure the use of the proper test parameters (the writable parameters in this object), the test parameters MUST be set either prior to or at the same time as (in the same SetParameterValues) setting the <em>DiagnosticsState</em> to <a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Requested"><em>Requested</em></a>. When requested, the CPE SHOULD wait until after completion of the communication session with the ACS before starting the diagnostic. When the test is completed, the value of this parameter MUST be either <strong>{{enum: reference to deprecated enumeration Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Completed}}</strong> (if the test completed successfully), or one of the <em>Error</em> values listed above. If the value of this parameter is anything other than <strong>{{enum: reference to deprecated enumeration Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Completed}}</strong>, the values of the results parameters for this test are indeterminate. When the diagnostic initiated by the ACS is completed (successfully or not), the CPE MUST establish a new connection to the ACS to allow the ACS to view the results, indicating the Event code <em>8 DIAGNOSTICS COMPLETE</em> in the Inform message. After the diagnostic is complete, the value of all result parameters (all read-only parameters in this object) MUST be retained by the CPE until either this diagnostic is run again, or the CPE reboots. After a reboot, if the CPE has not retained the result parameters from the most recent test, it MUST set the value of this parameter to <a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.None"><em>None</em></a> and remove all object instances from <a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.PerConnectionResult."><em>PerConnectionResult</em></a> and <a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.IncrementalResult."><em>IncrementalResult</em></a>. Modifying any of the writable parameters in this object except for this one MUST result in the value of this parameter being set to <a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.None"><em>None</em></a> and remove all object instances from <a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.PerConnectionResult."><em>PerConnectionResult</em></a> and <a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.IncrementalResult."><em>IncrementalResult</em></a>. While the test is in progress, modifying any of the writable parameters in this object except for this one MUST result in the test being terminated and the value of this parameter being set to <a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.None"><em>None</em></a> and remove all object instances from <a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.PerConnectionResult."><em>PerConnectionResult</em></a> and <a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.IncrementalResult."><em>IncrementalResult</em></a>. While the test is in progress, setting this parameter to <a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Requested"><em>Requested</em></a> (and possibly modifying other writable parameters in this object) MUST result in the test being terminated and then restarted using the current values of the test parameters.<span class="removed">]</span></li></ul>

<div class="inserted"><p>[<a href="#T.DiagnosticsState">DiagnosticsState</a>] Indicates the availability of diagnostics data. Enumeration of:</p>

<p>Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.None"><em>None</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Requested"><em>Requested</em></span></li>
<li><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Complete"><em>Complete</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Completed"><em>Completed</em></span> (READONLY, DEPRECATED)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Error_CannotResolveHostName"><em>Error_CannotResolveHostName</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Error_NoRouteToHost"><em>Error_NoRouteToHost</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Error_InitConnectionFailed"><em>Error_InitConnectionFailed</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Error_NoResponse"><em>Error_NoResponse</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Error_TransferFailed"><em>Error_TransferFailed</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Error_PasswordRequestFailed"><em>Error_PasswordRequestFailed</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Error_LoginFailed"><em>Error_LoginFailed</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Error_NoTransferMode"><em>Error_NoTransferMode</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Error_NoPASV"><em>Error_NoPASV</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Error_IncorrectSize"><em>Error_IncorrectSize</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Error_Timeout"><em>Error_Timeout</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Error_Internal"><em>Error_Internal</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Error_Other"><em>Error_Other</em></span> (READONLY)</li></ul>

<p>If the ACS sets the value of this parameter to <a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Requested"><em>Requested</em></a>, the
CPE MUST initiate the corresponding diagnostic test. When writing, the
only allowed values are <a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Requested"><em>Requested</em></a> and <strong>{{enum: non-existent Canceled}}</strong>. To
ensure the use of the proper test parameters (the writable parameters in
this object), the test parameters MUST be set, and any errors or
inconsistencies in the test parameters MUST be detected, either prior to
or at the same time as (in the same SetParameterValues) setting this
parameter to <a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Requested"><em>Requested</em></a>.</p>

<p>When requested, the CPE SHOULD wait until after completion of the
communication session with the ACS before starting the diagnostic test.</p>

<p>When the test is completed, the value of this parameter MUST be either
<a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Complete"><em>Complete</em></a> (if the test completed successfully), or one of the
<em>Error</em> values listed above.</p>

<p>If the value of this parameter is anything other than <a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Complete"><em>Complete</em></a>,
the values of the results parameters for this test are indeterminate.</p>

<p>When the diagnostic initiated by the ACS is completed (successfully or
not), but not if it is canceled for any reason, the CPE MUST establish a
new connection to the ACS to allow the ACS to view the results,
indicating the Event code <em>8 DIAGNOSTICS COMPLETE</em> in the Inform
message.</p>

<p>After the diagnostic is complete, the value of all result parameters (all
read-only parameters in this object) MUST be retained by the CPE until
either this diagnostic is run again, or the CPE reboots. After a reboot,
if the CPE has not retained the result parameters from the most recent
test, it MUST set the value of this parameter to <a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.None"><em>None</em></a>.</p>

<p>Modifying any of the writable parameters in this object except for this
one MUST result in the value of this parameter being set to
<a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.None"><em>None</em></a>.</p>

<p>While the test is in progress, modifying any of the writable parameters
in this object except for this one MUST result in the test being
terminated and the value of this parameter being set to <a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.None"><em>None</em></a>.</p>

<p>While the test is in progress, setting this parameter to
<a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Requested"><em>Requested</em></a> (and possibly modifying other writable parameters in
this object) MUST result in the test being terminated and then restarted
using the current values of the test parameters.</p>

<p>While the test is in progress, setting this parameter to
<strong>{{enum: non-existent Canceled}}</strong> MUST result in the test being canceled and the value of
this parameter being set to <a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.None"><em>None</em></a>. If the CPE does not support
the <strong>{{enum: non-existent Canceled}}</strong> value, it MUST return a SPV error with &ldquo;Invalid
Parameter value&rdquo; (9007) to the ACS instead.</p></div>

<p>Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.None"><em>None</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Requested"><em>Requested</em></span></li>
<li><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Complete"><em>Complete</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Completed"><em>Completed</em></span> (READONLY, DEPRECATED)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Error_CannotResolveHostName"><em>Error_CannotResolveHostName</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Error_NoRouteToHost"><em>Error_NoRouteToHost</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Error_InitConnectionFailed"><em>Error_InitConnectionFailed</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Error_NoResponse"><em>Error_NoResponse</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Error_TransferFailed"><em>Error_TransferFailed</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Error_PasswordRequestFailed"><em>Error_PasswordRequestFailed</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Error_LoginFailed"><em>Error_LoginFailed</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Error_NoTransferMode"><em>Error_NoTransferMode</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Error_NoPASV"><em>Error_NoPASV</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Error_IncorrectSize"><em>Error_IncorrectSize</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Error_Timeout"><em>Error_Timeout</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Error_Internal"><em>Error_Internal</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Error_Other"><em>Error_Other</em></span> (READONLY)</li></ul>

<div class="diffs"><p><strong>Changes in 2.13:</strong></p>

<ul>
<li>Removed <em>string</em> syntax</li>
<li>Added <em>DiagnosticsState</em></li></ul></div></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DownloadURL">DownloadURL</span></td>
<td>string(:256)</td>
<td>W</td>
<td>The URL, as defined in [<a href="#R.RFC3986">RFC3986</a>], for the CPE to perform the download on. This parameter MUST be in the form of a valid HTTP [<a href="#R.RFC2616">RFC2616</a>] or FTP [<a href="#R.RFC959">RFC959</a>] URL. * When using FTP transport, FTP binary transfer MUST be used. * When using HTTP transport, persistent connections MUST be used and pipelining MUST NOT be used. * When using HTTP transport the HTTP Authentication MUST NOT be used. Note: For time based tests (<a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.TimeBasedTestDuration"><em>TimeBasedTestDuration</em></a> &gt; 0) the <span class="removed">ACS</span><span class="inserted">Controller</span> MAY add a hint to duration of the test to the URL. See <strong>{{bibref: non-existent <span class="inserted">TR-143</span>}}</strong> for more details.</td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.TimeBasedTestDuration">TimeBasedTestDuration</span></td>
<td>unsignedInt(0:999)</td>
<td>W</td>
<td>Controls time based testing <strong>{{bibref: non-existent <span class="inserted">TR-143</span>}}</strong>. When <em>TimeBasedTestDuration</em> &gt; 0, <em>TimeBasedTestDuration</em> is the duration in <em>seconds</em> of a time based test. If <em>TimeBasedTestDuration</em> is 0, the test is not based on time, but on the size of the file to be downloaded. The default value SHOULD be 0.</td>
<td>-</td>
<td>2.9</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.">Device.IP.Diagnostics.UploadDiagnostics.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object defines the diagnostics configuration for a HTTP or FTP UploadDiagnostics test.
Files sent by the UploadDiagnostics do not require file storage on the CPE device, and MAY be an arbitrary stream of bytes.</td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState">DiagnosticsState</span></td>
<td><span title="DiagnosticsState">string</span></td>
<td>W</td>
<td><p>[Indicate the availability of diagnostic data. Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.None"><em>None</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Requested"><em>Requested</em></span></li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Complete"><em>Complete</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Completed"><em>Completed</em></span> (READONLY, DEPRECATED)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Error_CannotResolveHostName"><em>Error_CannotResolveHostName</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Error_NoRouteToHost"><em>Error_NoRouteToHost</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Error_InitConnectionFailed"><em>Error_InitConnectionFailed</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Error_NoResponse"><em>Error_NoResponse</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Error_PasswordRequestFailed"><em>Error_PasswordRequestFailed</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Error_LoginFailed"><em>Error_LoginFailed</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Error_NoTransferMode"><em>Error_NoTransferMode</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Error_NoPASV"><em>Error_NoPASV</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Error_NoCWD"><em>Error_NoCWD</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Error_NoSTOR"><em>Error_NoSTOR</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Error_NoTransferComplete"><em>Error_NoTransferComplete</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Error_Timeout"><em>Error_Timeout</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Error_Internal"><em>Error_Internal</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Error_Other"><em>Error_Other</em></span> (READONLY)
If the ACS sets the value of this parameter to <a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Requested"><em>Requested</em></a>, the CPE MUST initiate the corresponding diagnostic test. When writing, the only allowed value is <a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Requested"><em>Requested</em></a>. To ensure the use of the proper test parameters (the writable parameters in this object), the test parameters MUST be set either prior to or at the same time as (in the same SetParameterValues) setting the <em>DiagnosticsState</em> to <a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Requested"><em>Requested</em></a>. When requested, the CPE SHOULD wait until after completion of the communication session with the ACS before starting the diagnostic. When the test is completed, the value of this parameter MUST be either <strong>{{enum: reference to deprecated enumeration Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Completed}}</strong> (if the test completed successfully), or one of the <em>Error</em> values listed above. If the value of this parameter is anything other than <strong>{{enum: reference to deprecated enumeration Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Completed}}</strong>, the values of the results parameters for this test are indeterminate. When the diagnostic initiated by the ACS is completed (successfully or not), the CPE MUST establish a new connection to the ACS to allow the ACS to view the results, indicating the Event code <em>8 DIAGNOSTICS COMPLETE</em> in the Inform message. After the diagnostic is complete, the value of all result parameters (all read-only parameters in this object) MUST be retained by the CPE until either this diagnostic is run again, or the CPE reboots. After a reboot, if the CPE has not retained the result parameters from the most recent test, it MUST set the value of this parameter to <a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.None"><em>None</em></a> and remove all object instances from <a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics."><em>UploadDiagnostics</em></a> and <a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.IncrementalResult."><em>IncrementalResult</em></a>. Modifying any of the writable parameters in this object except for this one MUST result in the value of this parameter being set to <a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.None"><em>None</em></a> and remove all object instances from <a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.PerConnectionResult."><em>PerConnectionResult</em></a> and <a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.IncrementalResult."><em>IncrementalResult</em></a>. While the test is in progress, modifying any of the writable parameters in this object except for this one MUST result in the test being terminated and the value of this parameter being set to <a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.None"><em>None</em></a> and remove all object instances from <a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.PerConnectionResult."><em>PerConnectionResult</em></a> and <a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.IncrementalResult."><em>IncrementalResult</em></a>. While the test is in progress, setting this parameter to <a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Requested"><em>Requested</em></a> (and possibly modifying other writable parameters in this object) MUST result in the test being terminated and then restarted using the current values of the test parameters.<span class="removed">]</span></li></ul>

<div class="inserted"><p>[<a href="#T.DiagnosticsState">DiagnosticsState</a>] Indicates the availability of diagnostics data. Enumeration of:</p>

<p>Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.None"><em>None</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Requested"><em>Requested</em></span></li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Complete"><em>Complete</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Completed"><em>Completed</em></span> (READONLY, DEPRECATED)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Error_CannotResolveHostName"><em>Error_CannotResolveHostName</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Error_NoRouteToHost"><em>Error_NoRouteToHost</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Error_InitConnectionFailed"><em>Error_InitConnectionFailed</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Error_NoResponse"><em>Error_NoResponse</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Error_PasswordRequestFailed"><em>Error_PasswordRequestFailed</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Error_LoginFailed"><em>Error_LoginFailed</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Error_NoTransferMode"><em>Error_NoTransferMode</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Error_NoPASV"><em>Error_NoPASV</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Error_NoCWD"><em>Error_NoCWD</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Error_NoSTOR"><em>Error_NoSTOR</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Error_NoTransferComplete"><em>Error_NoTransferComplete</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Error_Timeout"><em>Error_Timeout</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Error_Internal"><em>Error_Internal</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Error_Other"><em>Error_Other</em></span> (READONLY)</li></ul>

<p>If the ACS sets the value of this parameter to <a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Requested"><em>Requested</em></a>, the
CPE MUST initiate the corresponding diagnostic test. When writing, the
only allowed values are <a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Requested"><em>Requested</em></a> and <strong>{{enum: non-existent Canceled}}</strong>. To
ensure the use of the proper test parameters (the writable parameters in
this object), the test parameters MUST be set, and any errors or
inconsistencies in the test parameters MUST be detected, either prior to
or at the same time as (in the same SetParameterValues) setting this
parameter to <a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Requested"><em>Requested</em></a>.</p>

<p>When requested, the CPE SHOULD wait until after completion of the
communication session with the ACS before starting the diagnostic test.</p>

<p>When the test is completed, the value of this parameter MUST be either
<a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Complete"><em>Complete</em></a> (if the test completed successfully), or one of the
<em>Error</em> values listed above.</p>

<p>If the value of this parameter is anything other than <a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Complete"><em>Complete</em></a>,
the values of the results parameters for this test are indeterminate.</p>

<p>When the diagnostic initiated by the ACS is completed (successfully or
not), but not if it is canceled for any reason, the CPE MUST establish a
new connection to the ACS to allow the ACS to view the results,
indicating the Event code <em>8 DIAGNOSTICS COMPLETE</em> in the Inform
message.</p>

<p>After the diagnostic is complete, the value of all result parameters (all
read-only parameters in this object) MUST be retained by the CPE until
either this diagnostic is run again, or the CPE reboots. After a reboot,
if the CPE has not retained the result parameters from the most recent
test, it MUST set the value of this parameter to <a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.None"><em>None</em></a>.</p>

<p>Modifying any of the writable parameters in this object except for this
one MUST result in the value of this parameter being set to
<a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.None"><em>None</em></a>.</p>

<p>While the test is in progress, modifying any of the writable parameters
in this object except for this one MUST result in the test being
terminated and the value of this parameter being set to <a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.None"><em>None</em></a>.</p>

<p>While the test is in progress, setting this parameter to
<a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Requested"><em>Requested</em></a> (and possibly modifying other writable parameters in
this object) MUST result in the test being terminated and then restarted
using the current values of the test parameters.</p>

<p>While the test is in progress, setting this parameter to
<strong>{{enum: non-existent Canceled}}</strong> MUST result in the test being canceled and the value of
this parameter being set to <a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.None"><em>None</em></a>. If the CPE does not support
the <strong>{{enum: non-existent Canceled}}</strong> value, it MUST return a SPV error with &ldquo;Invalid
Parameter value&rdquo; (9007) to the ACS instead.</p></div>

<p>Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.None"><em>None</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Requested"><em>Requested</em></span></li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Complete"><em>Complete</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Completed"><em>Completed</em></span> (READONLY, DEPRECATED)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Error_CannotResolveHostName"><em>Error_CannotResolveHostName</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Error_NoRouteToHost"><em>Error_NoRouteToHost</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Error_InitConnectionFailed"><em>Error_InitConnectionFailed</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Error_NoResponse"><em>Error_NoResponse</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Error_PasswordRequestFailed"><em>Error_PasswordRequestFailed</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Error_LoginFailed"><em>Error_LoginFailed</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Error_NoTransferMode"><em>Error_NoTransferMode</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Error_NoPASV"><em>Error_NoPASV</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Error_NoCWD"><em>Error_NoCWD</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Error_NoSTOR"><em>Error_NoSTOR</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Error_NoTransferComplete"><em>Error_NoTransferComplete</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Error_Timeout"><em>Error_Timeout</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Error_Internal"><em>Error_Internal</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Error_Other"><em>Error_Other</em></span> (READONLY)</li></ul>

<div class="diffs"><p><strong>Changes in 2.13:</strong></p>

<ul>
<li>Removed <em>string</em> syntax</li>
<li>Added <em>DiagnosticsState</em></li></ul></div></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.TimeBasedTestDuration">TimeBasedTestDuration</span></td>
<td>unsignedInt(0:999)</td>
<td>W</td>
<td>Controls time based testing <strong>{{bibref: non-existent <span class="inserted">TR-143</span>}}</strong>. When <em>TimeBasedTestDuration</em> &gt; 0, <em>TimeBasedTestDuration</em> is the duration in <em>seconds</em> of a time based test. If <em>TimeBasedTestDuration</em> is 0, the test is not based on time, but on the size of the file to be uploaded. The default value SHOULD be 0.</td>
<td>-</td>
<td>2.9</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.">Device.IP.Diagnostics.UDPEchoDiagnostics.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object defines the diagnostics configuration for a UDP Echo test <strong>{{bibref: non-existent <span class="inserted">TR-143</span>}}</strong> defined in [<a href="#R.RFC862">RFC862</a>] or a UDP Echo Plus test defined in <strong>{{bibref: non-existent <span class="inserted">TR-143</span>}}</strong>.</td>
<td>-</td>
<td>2.9</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.DiagnosticsState">DiagnosticsState</span></td>
<td><span title="DiagnosticsState">string</span></td>
<td>W</td>
<td><p>[Indicate the availability of diagnostic data. Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.DiagnosticsState.None"><em>None</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.DiagnosticsState.Requested"><em>Requested</em></span></li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.DiagnosticsState.Complete"><em>Complete</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.DiagnosticsState.Completed"><em>Completed</em></span> (READONLY, DEPRECATED)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.DiagnosticsState.Error_CannotResolveHostName"><em>Error_CannotResolveHostName</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.DiagnosticsState.Error_Internal"><em>Error_Internal</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.DiagnosticsState.Error_Other"><em>Error_Other</em></span> (READONLY)
If the ACS sets the value of this parameter to <a href="#D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.DiagnosticsState.Requested"><em>Requested</em></a>, the CPE MUST initiate the corresponding diagnostic test. When writing, the only allowed value is <a href="#D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.DiagnosticsState.Requested"><em>Requested</em></a>. To ensure the use of the proper test parameters (the writable parameters in this object), the test parameters MUST be set either prior to or at the same time as (in the same SetParameterValues) setting the <em>DiagnosticsState</em> to <a href="#D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.DiagnosticsState.Requested"><em>Requested</em></a>. When requested, the CPE SHOULD wait until after completion of the communication session with the ACS before starting the diagnostic. When the test is completed, the value of this parameter MUST be either <strong>{{enum: reference to deprecated enumeration Device.IP.Diagnostics.UDPEchoDiagnostics.DiagnosticsState.Completed}}</strong> (if the test completed successfully), or one of the <em>Error</em> values listed above. If the value of this parameter is anything other than <strong>{{enum: reference to deprecated enumeration Device.IP.Diagnostics.UDPEchoDiagnostics.DiagnosticsState.Completed}}</strong>, the values of the results parameters for this test are indeterminate. When the diagnostic initiated by the ACS is completed (successfully or not), the CPE MUST establish a new connection to the ACS to allow the ACS to view the results, indicating the Event code <em>8 DIAGNOSTICS COMPLETE</em> in the Inform message. After the diagnostic is complete, the value of all result parameters (all read-only parameters in this object) MUST be retained by the CPE until either this diagnostic is run again, or the CPE reboots. After a reboot, if the CPE has not retained the result parameters from the most recent test, it MUST set the value of this parameter to <a href="#D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.DiagnosticsState.None"><em>None</em></a> and remove all object instances from <a href="#D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.IndividualPacketResult."><em>IndividualPacketResult</em></a>. Modifying any of the writable parameters in this object except for this one MUST result in the value of this parameter being set to <a href="#D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.DiagnosticsState.None"><em>None</em></a> and remove all object instances from <a href="#D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.IndividualPacketResult."><em>IndividualPacketResult</em></a>. While the test is in progress, modifying any of the writable parameters in this object except for this one MUST result in the test being terminated and the value of this parameter being set to <a href="#D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.DiagnosticsState.None"><em>None</em></a> and remove all object instances from <a href="#D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.IndividualPacketResult."><em>IndividualPacketResult</em></a>. While the test is in progress, setting this parameter to <a href="#D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.DiagnosticsState.Requested"><em>Requested</em></a> (and possibly modifying other writable parameters in this object) MUST result in the test being terminated and then restarted using the current values of the test parameters.<span class="removed">]</span></li></ul>

<div class="inserted"><p>[<a href="#T.DiagnosticsState">DiagnosticsState</a>] Indicates the availability of diagnostics data. Enumeration of:</p>

<p>Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.DiagnosticsState.None"><em>None</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.DiagnosticsState.Requested"><em>Requested</em></span></li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.DiagnosticsState.Complete"><em>Complete</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.DiagnosticsState.Completed"><em>Completed</em></span> (READONLY, DEPRECATED)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.DiagnosticsState.Error_CannotResolveHostName"><em>Error_CannotResolveHostName</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.DiagnosticsState.Error_Internal"><em>Error_Internal</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.DiagnosticsState.Error_Other"><em>Error_Other</em></span> (READONLY)</li></ul>

<p>If the ACS sets the value of this parameter to <a href="#D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.DiagnosticsState.Requested"><em>Requested</em></a>, the
CPE MUST initiate the corresponding diagnostic test. When writing, the
only allowed values are <a href="#D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.DiagnosticsState.Requested"><em>Requested</em></a> and <strong>{{enum: non-existent Canceled}}</strong>. To
ensure the use of the proper test parameters (the writable parameters in
this object), the test parameters MUST be set, and any errors or
inconsistencies in the test parameters MUST be detected, either prior to
or at the same time as (in the same SetParameterValues) setting this
parameter to <a href="#D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.DiagnosticsState.Requested"><em>Requested</em></a>.</p>

<p>When requested, the CPE SHOULD wait until after completion of the
communication session with the ACS before starting the diagnostic test.</p>

<p>When the test is completed, the value of this parameter MUST be either
<a href="#D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.DiagnosticsState.Complete"><em>Complete</em></a> (if the test completed successfully), or one of the
<em>Error</em> values listed above.</p>

<p>If the value of this parameter is anything other than <a href="#D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.DiagnosticsState.Complete"><em>Complete</em></a>,
the values of the results parameters for this test are indeterminate.</p>

<p>When the diagnostic initiated by the ACS is completed (successfully or
not), but not if it is canceled for any reason, the CPE MUST establish a
new connection to the ACS to allow the ACS to view the results,
indicating the Event code <em>8 DIAGNOSTICS COMPLETE</em> in the Inform
message.</p>

<p>After the diagnostic is complete, the value of all result parameters (all
read-only parameters in this object) MUST be retained by the CPE until
either this diagnostic is run again, or the CPE reboots. After a reboot,
if the CPE has not retained the result parameters from the most recent
test, it MUST set the value of this parameter to <a href="#D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.DiagnosticsState.None"><em>None</em></a>.</p>

<p>Modifying any of the writable parameters in this object except for this
one MUST result in the value of this parameter being set to
<a href="#D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.DiagnosticsState.None"><em>None</em></a>.</p>

<p>While the test is in progress, modifying any of the writable parameters
in this object except for this one MUST result in the test being
terminated and the value of this parameter being set to <a href="#D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.DiagnosticsState.None"><em>None</em></a>.</p>

<p>While the test is in progress, setting this parameter to
<a href="#D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.DiagnosticsState.Requested"><em>Requested</em></a> (and possibly modifying other writable parameters in
this object) MUST result in the test being terminated and then restarted
using the current values of the test parameters.</p>

<p>While the test is in progress, setting this parameter to
<strong>{{enum: non-existent Canceled}}</strong> MUST result in the test being canceled and the value of
this parameter being set to <a href="#D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.DiagnosticsState.None"><em>None</em></a>. If the CPE does not support
the <strong>{{enum: non-existent Canceled}}</strong> value, it MUST return a SPV error with &ldquo;Invalid
Parameter value&rdquo; (9007) to the ACS instead.</p></div>

<p>Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.DiagnosticsState.None"><em>None</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.DiagnosticsState.Requested"><em>Requested</em></span></li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.DiagnosticsState.Complete"><em>Complete</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.DiagnosticsState.Completed"><em>Completed</em></span> (READONLY, DEPRECATED)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.DiagnosticsState.Error_CannotResolveHostName"><em>Error_CannotResolveHostName</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.DiagnosticsState.Error_Internal"><em>Error_Internal</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.DiagnosticsState.Error_Other"><em>Error_Other</em></span> (READONLY)</li></ul>

<p>Active Notification requests for this parameter MAY be denied.</p>

<div class="diffs"><p><strong>Changes in 2.13:</strong></p>

<ul>
<li>Removed <em>string</em> syntax</li>
<li>Added <em>DiagnosticsState</em></li></ul></div></td>
<td>-</td>
<td>2.9</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.IndividualPacketResult.">Device.IP.Diagnostics.UDPEchoDiagnostics.IndividualPacketResult.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td>This object provides the results from individual UDPEchoPlus test packets collected during a test if <a href="#D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.EnableIndividualPacketResults"><em>EnableIndividualPacketResults</em></a> is set to true. When <a href="#D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.DiagnosticsState"><em>DiagnosticsState</em></a> is set to <strong>{{enum: reference to deprecated enumeration Device.IP.Diagnostics.UDPEchoDiagnostics.DiagnosticsState.Completed}}</strong> it should contain <a href="#D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.NumberOfRepetitions"><em>NumberOfRepetitions</em></a> objects. Instance numbers MUST start at 1 and sequentially increment as new instances are created. The instance number should match the TestIterationNumber field of the request and response packet. All instances are removed when <a href="#D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.DiagnosticsState"><em>DiagnosticsState</em></a> is set to <a href="#D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.DiagnosticsState.Requested"><em>Requested</em></a> or <a href="#D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.DiagnosticsState.None"><em>None</em></a>.</td>
<td>-</td>
<td>2.9</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.IndividualPacketResult.PacketReceiveTime">PacketReceiveTime</span></td>
<td>dateTime</td>
<td>R</td>
<td>Time the client receives the response packet in UTC, which MUST be specified to microsecond precision. For example: 2008-04-09T15:01:05.123456Z If this response is never received, <em>PacketReceiveTime</em> SHOULD be set to the Unknown Time value as specified in <strong>{{bibref: non-existent <span class="inserted">TR-106</span>}}</strong>.</td>
<td>-</td>
<td>2.9</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.IndividualPacketResult.TestGenSN">TestGenSN</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>The TestGenSN field in the UDPEcho Plus packet <strong>{{bibref: non-existent <span class="inserted">TR-143</span>}}</strong> sent by the CPE client.</td>
<td>-</td>
<td>2.9</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.IndividualPacketResult.TestRespSN">TestRespSN</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>The TestRespSN field in the response packet <strong>{{bibref: non-existent <span class="inserted">TR-143</span>}}</strong> from the UDP Echo Plus server (i.e. <a href="#D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.Host"><em>Host</em></a>) for this Echo Plus packet sent by the CPE client. If <a href="#D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.IndividualPacketResult.PacketSuccess"><em>PacketSuccess</em></a> is <em>false</em>, <em>TestRespSN</em> SHOULD be 0.</td>
<td>-</td>
<td>2.9</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.IndividualPacketResult.TestRespRcvTimeStamp">TestRespRcvTimeStamp</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>The TestRespRcvTimeStamp field in the response packet <strong>{{bibref: non-existent <span class="inserted">TR-143</span>}}</strong> from the UDP Echo Plus server (i.e. <a href="#D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.Host"><em>Host</em></a>) to record the reception time of this UDP Echo Plus packet sent from the CPE client. If <a href="#D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.IndividualPacketResult.PacketSuccess"><em>PacketSuccess</em></a> is <em>false</em>, <em>TestRespRcvTimeStamp</em> SHOULD be 0.</td>
<td>-</td>
<td>2.9</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.IndividualPacketResult.TestRespReplyTimeStamp">TestRespReplyTimeStamp</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>The TestRespReplyTimeStamp field in the response packet <strong>{{bibref: non-existent <span class="inserted">TR-143</span>}}</strong> from the UDP Echo Plus server (i.e. <a href="#D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.Host"><em>Host</em></a>) to record the server reply time of this UDP Echo Plus packet sent from the CPE client. That is, the time that the server returned the UDP Echo Plus packet. If <a href="#D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.IndividualPacketResult.PacketSuccess"><em>PacketSuccess</em></a> is <em>false</em>, <em>TestRespReplyTimeStamp</em> SHOULD be 0.</td>
<td>-</td>
<td>2.9</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.IP.Diagnostics.ServerSelectionDiagnostics.">Device.IP.Diagnostics.ServerSelectionDiagnostics.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object provides access to a diagnostics test that performs either an ICMP Ping or UDP Echo ping against multiple hosts determining which one has the smallest average response time. There MUST be a ping response to the transmitted ping, or timeout, before the next ping is sent out.</td>
<td>-</td>
<td>2.9</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.IP.Diagnostics.ServerSelectionDiagnostics.DiagnosticsState">DiagnosticsState</span></td>
<td><span title="DiagnosticsState">string</span></td>
<td>W</td>
<td><p>[Indicates availability of diagnostic data. Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.IP.Diagnostics.ServerSelectionDiagnostics.DiagnosticsState.None"><em>None</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.ServerSelectionDiagnostics.DiagnosticsState.Requested"><em>Requested</em></span></li>
<li><span id="D.Device:2.Device.IP.Diagnostics.ServerSelectionDiagnostics.DiagnosticsState.Complete"><em>Complete</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.ServerSelectionDiagnostics.DiagnosticsState.Completed"><em>Completed</em></span> (READONLY, DEPRECATED)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.ServerSelectionDiagnostics.DiagnosticsState.Error_CannotResolveHostName"><em>Error_CannotResolveHostName</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.ServerSelectionDiagnostics.DiagnosticsState.Error_Internal"><em>Error_Internal</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.ServerSelectionDiagnostics.DiagnosticsState.Error_Other"><em>Error_Other</em></span> (READONLY)
If the ACS sets the value of this parameter to <a href="#D.Device:2.Device.IP.Diagnostics.ServerSelectionDiagnostics.DiagnosticsState.Requested"><em>Requested</em></a>, the CPE MUST initiate the corresponding diagnostic test. When writing, the only allowed value is <a href="#D.Device:2.Device.IP.Diagnostics.ServerSelectionDiagnostics.DiagnosticsState.Requested"><em>Requested</em></a>. To ensure the use of the proper test parameters (the writable parameters in this object), the test parameters MUST be set either prior to or at the same time as (in the same SetParameterValues) setting the <em>DiagnosticsState</em> to <a href="#D.Device:2.Device.IP.Diagnostics.ServerSelectionDiagnostics.DiagnosticsState.Requested"><em>Requested</em></a>. When requested, the CPE SHOULD wait until after completion of the communication session with the ACS before starting the diagnostic. When the test is completed, the value of this parameter MUST be either <strong>{{enum: reference to deprecated enumeration Device.IP.Diagnostics.ServerSelectionDiagnostics.DiagnosticsState.Completed}}</strong> (if the test completed successfully), or one of the <em>Error</em> values listed above. If the value of this parameter is anything other than <strong>{{enum: reference to deprecated enumeration Device.IP.Diagnostics.ServerSelectionDiagnostics.DiagnosticsState.Completed}}</strong>, the values of the results parameters for this test are indeterminate. When the diagnostic initiated by the ACS is completed (successfully or not), the CPE MUST establish a new connection to the ACS to allow the ACS to view the results, indicating the Event code <em>8 DIAGNOSTICS COMPLETE</em> in the Inform message. After the diagnostic is complete, the value of all result parameters (all read-only parameters in this object) MUST be retained by the CPE until either this diagnostic is run again, or the CPE reboots. After a reboot, if the CPE has not retained the result parameters from the most recent test, it MUST set the value of this parameter to <a href="#D.Device:2.Device.IP.Diagnostics.ServerSelectionDiagnostics.DiagnosticsState.None"><em>None</em></a>. Modifying any of the writable parameters in this object except for this one MUST result in the value of this parameter being set to <a href="#D.Device:2.Device.IP.Diagnostics.ServerSelectionDiagnostics.DiagnosticsState.None"><em>None</em></a>. While the test is in progress, modifying any of the writable parameters in this object except for this one MUST result in the test being terminated and the value of this parameter being set to <a href="#D.Device:2.Device.IP.Diagnostics.ServerSelectionDiagnostics.DiagnosticsState.None"><em>None</em></a>. While the test is in progress, setting this parameter to <a href="#D.Device:2.Device.IP.Diagnostics.ServerSelectionDiagnostics.DiagnosticsState.Requested"><em>Requested</em></a> (and possibly modifying other writable parameters in this object) MUST result in the test being terminated and then restarted using the current values of the test parameters.<span class="removed">]</span></li></ul>

<div class="inserted"><p>[<a href="#T.DiagnosticsState">DiagnosticsState</a>] Indicates the availability of diagnostics data. Enumeration of:</p>

<p>Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.IP.Diagnostics.ServerSelectionDiagnostics.DiagnosticsState.None"><em>None</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.ServerSelectionDiagnostics.DiagnosticsState.Requested"><em>Requested</em></span></li>
<li><span id="D.Device:2.Device.IP.Diagnostics.ServerSelectionDiagnostics.DiagnosticsState.Complete"><em>Complete</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.ServerSelectionDiagnostics.DiagnosticsState.Completed"><em>Completed</em></span> (READONLY, DEPRECATED)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.ServerSelectionDiagnostics.DiagnosticsState.Error_CannotResolveHostName"><em>Error_CannotResolveHostName</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.ServerSelectionDiagnostics.DiagnosticsState.Error_Internal"><em>Error_Internal</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.ServerSelectionDiagnostics.DiagnosticsState.Error_Other"><em>Error_Other</em></span> (READONLY)</li></ul>

<p>If the ACS sets the value of this parameter to <a href="#D.Device:2.Device.IP.Diagnostics.ServerSelectionDiagnostics.DiagnosticsState.Requested"><em>Requested</em></a>, the
CPE MUST initiate the corresponding diagnostic test. When writing, the
only allowed values are <a href="#D.Device:2.Device.IP.Diagnostics.ServerSelectionDiagnostics.DiagnosticsState.Requested"><em>Requested</em></a> and <strong>{{enum: non-existent Canceled}}</strong>. To
ensure the use of the proper test parameters (the writable parameters in
this object), the test parameters MUST be set, and any errors or
inconsistencies in the test parameters MUST be detected, either prior to
or at the same time as (in the same SetParameterValues) setting this
parameter to <a href="#D.Device:2.Device.IP.Diagnostics.ServerSelectionDiagnostics.DiagnosticsState.Requested"><em>Requested</em></a>.</p>

<p>When requested, the CPE SHOULD wait until after completion of the
communication session with the ACS before starting the diagnostic test.</p>

<p>When the test is completed, the value of this parameter MUST be either
<a href="#D.Device:2.Device.IP.Diagnostics.ServerSelectionDiagnostics.DiagnosticsState.Complete"><em>Complete</em></a> (if the test completed successfully), or one of the
<em>Error</em> values listed above.</p>

<p>If the value of this parameter is anything other than <a href="#D.Device:2.Device.IP.Diagnostics.ServerSelectionDiagnostics.DiagnosticsState.Complete"><em>Complete</em></a>,
the values of the results parameters for this test are indeterminate.</p>

<p>When the diagnostic initiated by the ACS is completed (successfully or
not), but not if it is canceled for any reason, the CPE MUST establish a
new connection to the ACS to allow the ACS to view the results,
indicating the Event code <em>8 DIAGNOSTICS COMPLETE</em> in the Inform
message.</p>

<p>After the diagnostic is complete, the value of all result parameters (all
read-only parameters in this object) MUST be retained by the CPE until
either this diagnostic is run again, or the CPE reboots. After a reboot,
if the CPE has not retained the result parameters from the most recent
test, it MUST set the value of this parameter to <a href="#D.Device:2.Device.IP.Diagnostics.ServerSelectionDiagnostics.DiagnosticsState.None"><em>None</em></a>.</p>

<p>Modifying any of the writable parameters in this object except for this
one MUST result in the value of this parameter being set to
<a href="#D.Device:2.Device.IP.Diagnostics.ServerSelectionDiagnostics.DiagnosticsState.None"><em>None</em></a>.</p>

<p>While the test is in progress, modifying any of the writable parameters
in this object except for this one MUST result in the test being
terminated and the value of this parameter being set to <a href="#D.Device:2.Device.IP.Diagnostics.ServerSelectionDiagnostics.DiagnosticsState.None"><em>None</em></a>.</p>

<p>While the test is in progress, setting this parameter to
<a href="#D.Device:2.Device.IP.Diagnostics.ServerSelectionDiagnostics.DiagnosticsState.Requested"><em>Requested</em></a> (and possibly modifying other writable parameters in
this object) MUST result in the test being terminated and then restarted
using the current values of the test parameters.</p>

<p>While the test is in progress, setting this parameter to
<strong>{{enum: non-existent Canceled}}</strong> MUST result in the test being canceled and the value of
this parameter being set to <a href="#D.Device:2.Device.IP.Diagnostics.ServerSelectionDiagnostics.DiagnosticsState.None"><em>None</em></a>. If the CPE does not support
the <strong>{{enum: non-existent Canceled}}</strong> value, it MUST return a SPV error with &ldquo;Invalid
Parameter value&rdquo; (9007) to the ACS instead.</p></div>

<p>Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.IP.Diagnostics.ServerSelectionDiagnostics.DiagnosticsState.None"><em>None</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.ServerSelectionDiagnostics.DiagnosticsState.Requested"><em>Requested</em></span></li>
<li><span id="D.Device:2.Device.IP.Diagnostics.ServerSelectionDiagnostics.DiagnosticsState.Complete"><em>Complete</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.ServerSelectionDiagnostics.DiagnosticsState.Completed"><em>Completed</em></span> (READONLY, DEPRECATED)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.ServerSelectionDiagnostics.DiagnosticsState.Error_CannotResolveHostName"><em>Error_CannotResolveHostName</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.ServerSelectionDiagnostics.DiagnosticsState.Error_Internal"><em>Error_Internal</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.ServerSelectionDiagnostics.DiagnosticsState.Error_Other"><em>Error_Other</em></span> (READONLY)</li></ul>

<p>Active Notification requests for this parameter MAY be denied.</p>

<div class="diffs"><p><strong>Changes in 2.13:</strong></p>

<ul>
<li>Removed <em>string</em> syntax</li>
<li>Added <em>DiagnosticsState</em></li></ul></div></td>
<td>-</td>
<td>2.9</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.IPsec.">Device.IPsec.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>IPsec [<a href="#R.RFC4301">RFC4301</a>] object that supports the configuration of Encapsulating Security Payload (ESP) [<a href="#R.RFC4303">RFC4303</a>] and Authentication Header (AH) [<a href="#R.RFC4302">RFC4302</a>] in tunnel mode [<a href="#R.RFC4301">Section 3.2/RFC4301</a>]. Use of IKEv2 [<a href="#R.RFC5996">RFC5996</a>] is assumed. The IPsec object does not currently support static configuration of tunnels and child Security Associations (SAs). See the IPsec Theory of Operation <strong>{{bibref: non-existent <span class="inserted">TR-181i2</span>}}</strong> for a description of the working of this IPsec data model.</td>
<td>-</td>
<td>2.5</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.MAP.">Device.MAP.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>The Mapping of Address and Port (MAP) object [<a href="#R.RFC7597">RFC7597</a>] [<a href="#R.RFC7599">RFC7599</a>] [<a href="#R.RFC7598">RFC7598</a>]. This object applies only to gateway devices that support IPv4 on the LAN side, include a <a href="#D.Device:2.Device.NAT."><em>NAT</em></a>, and typically have only IPv6 connectivity on the WAN side. See the MAP Theory of Operation <strong>{{bibref: non-existent <span class="inserted">TR-181i2</span>}}</strong> for a description of the working of this MAP data model.</td>
<td>-</td>
<td>2.8</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.MAP.Domain.">Device.MAP.Domain.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>MAP domain settings [<a href="#R.RFC7597">RFC7597</a>] [<a href="#R.RFC7599">RFC7599</a>]. Each instance models a MAP domain.
MAP supports two transport modes, both of which use NAPT44 (modified to use a restricted port range):</p>

<ul>
<li>MAP-E (<a href="#D.Device:2.Device.MAP.Domain.TransportMode"><em>TransportMode</em></a> = <a href="#D.Device:2.Device.MAP.Domain.TransportMode.Encapsulation"><em>Encapsulation</em></a>) uses an IPv4-in-IPv6 tunnel.</li>
<li>MAP-T (<a href="#D.Device:2.Device.MAP.Domain.TransportMode"><em>TransportMode</em></a> = <a href="#D.Device:2.Device.MAP.Domain.TransportMode.Translation"><em>Translation</em></a>) uses stateless NAT64.
Note: There is an n:1 relationship between a MAP domain and the associated <a href="#D.Device:2.Device.MAP.Domain.WANInterface"><em>WANInterface</em></a>, i.e. in theory multiple MAP domains can be associated with a single WAN IP interface (each domain would have its own <em>End-user IPv6 prefix</em> and <em>MAP IPv6 address</em>).
Note: The <em>Domain</em> table includes unique key parameters that are strong references. If a strongly referenced object is deleted, the CPE will set the referencing parameter to an empty string. However, doing so under these circumstances might cause the updated <em>Domain</em> row to then violate the table’s unique key constraint; if this occurs, the CPE MUST set <a href="#D.Device:2.Device.MAP.Domain.Status"><em>Status</em></a> to <a href="#D.Device:2.Device.MAP.Domain.Status.Error_Misconfigured"><em>Error_Misconfigured</em></a> and disable the offending <em>Domain</em> row.</li></ul>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.MAP.Domain.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.MAP.Domain.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.
At most one enabled entry in this table can exist with the same values for both <a href="#D.Device:2.Device.MAP.Domain.WANInterface"><em>WANInterface</em></a> and <a href="#D.Device:2.Device.MAP.Domain.IPv6Prefix"><em>IPv6Prefix</em></a>.</p></td>
<td>-</td>
<td>2.8</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.MAP.Domain.IPv6Prefix">IPv6Prefix</span></td>
<td>string</td>
<td>W</td>
<td>The value MUST be the Path Name of a row in the <a href="#D.Device:2.Device.IP.Interface.IPv6Prefix."><em>IP.Interface.{i}.IPv6Prefix.</em></a> table. If the referenced object is deleted, the parameter value MUST be set to an empty string. The MAP domain’s <em>End-user IPv6 prefix</em>. This MUST reference one of <a href="#D.Device:2.Device.MAP.Domain.WANInterface"><em>WANInterface</em></a>’s prefixes. If the <span class="removed">ACS</span><span class="inserted">Controller</span> configures this prefix directly, the CPE MUST use the <span class="removed">ACS-configured</span><span class="inserted">Controller-configured</span> prefix. Otherwise, the CPE MUST select one of <a href="#D.Device:2.Device.MAP.Domain.WANInterface"><em>WANInterface</em></a>’s prefixes; the selected prefix will typically have <a href="#D.Device:2.Device.IP.Interface.IPv6Prefix.Origin"><em>IP.Interface.{i}.IPv6Prefix.{i}.Origin</em></a> = <a href="#D.Device:2.Device.IP.Interface.IPv6Prefix.Origin.PrefixDelegation"><em>PrefixDelegation</em></a>.</td>
<td>-</td>
<td>2.8</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.MAP.Domain.Rule.">Device.MAP.Domain.{i}.Rule.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>The MAP domain’s Mapping Rules [<a href="#R.RFC7597">RFC7597</a>]. The rule with the longest match between its <a href="#D.Device:2.Device.MAP.Domain.Rule.IPv6Prefix"><em>IPv6Prefix</em></a> and the end-user <a href="#D.Device:2.Device.MAP.Domain.IPv6Prefix"><em>IPv6Prefix</em></a> is the Basic Mapping Rule (BMR). Any of the rules (including the BMR) can be a Forwarding Mapping Rule.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.MAP.Domain.Rule.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.MAP.Domain.Rule.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.
At most one enabled entry in this table can exist with a given value for <a href="#D.Device:2.Device.MAP.Domain.Rule.IPv6Prefix"><em>IPv6Prefix</em></a>, or with a given value for <a href="#D.Device:2.Device.MAP.Domain.Rule.IPv4Prefix"><em>IPv4Prefix</em></a>.</p></td>
<td>-</td>
<td>2.8</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.MAP.Domain.Rule.Origin">Origin</span></td>
<td>string</td>
<td>R</td>
<td><p>The mechanism via which the <a href="#D.Device:2.Device.MAP.Domain.Rule."><em>Rule</em></a> was created.
If the CPE supports MAP configuration via both DHCPv6 and CWMP, it is up to the implementation to determine how the two mechanisms will interact.</p>

<p>Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.MAP.Domain.Rule.Origin.DHCPv6"><em>DHCPv6</em></span> (Created via a [<a href="#R.RFC7598">RFC7598</a>] <em>S46_RULE</em> option)</li>
<li><span id="D.Device:2.Device.MAP.Domain.Rule.Origin.Static"><em>Static</em></span> (Present in the factory default configuration, created by the <span class="inserted">Controller,</span> or created by some other management entity (e.g. via a GUI))</li></ul></td>
<td>Static</td>
<td>2.8</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.Routing.">Device.Routing.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>Routing object that contains the <a href="#D.Device:2.Device.Routing.Router."><em>Router</em></a> table and <a href="#D.Device:2.Device.Routing.RIP."><em>RIP</em></a> protocol object.</td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.Routing.Router.">Device.Routing.Router.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>This object allows the handling of the routing and forwarding configuration of the device.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.Routing.Router.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.Routing.Router.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.</p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.Routing.Router.IPv4Forwarding.">Device.Routing.Router.{i}.IPv4Forwarding.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>Layer 3 IPv4 forwarding table.
In addition to statically configured routes, this table MUST include dynamic routes learned through layer 3 routing protocols, including RIP (i.e. RIP version 2), OSPF, DHCPv4, and IPCP. The CPE MAY reject attempts to delete or modify a dynamic route entry.
For each incoming packet, the layer 3 forwarding decision is conceptually made as follows:</p>

<ul>
<li>Only enabled table entries with a matching <a href="#D.Device:2.Device.Routing.Router.IPv4Forwarding.ForwardingPolicy"><em>ForwardingPolicy</em></a> are considered, i.e. those that either do not specify a <a href="#D.Device:2.Device.Routing.Router.IPv4Forwarding.ForwardingPolicy"><em>ForwardingPolicy</em></a>, or else specify a <a href="#D.Device:2.Device.Routing.Router.IPv4Forwarding.ForwardingPolicy"><em>ForwardingPolicy</em></a> that matches that of the incoming packet.</li>
<li>Next, table entries that also have a matching destination address/mask are considered, and the matching entry with the longest prefix is applied to the packet (i.e. the entry with the most specific network). An unspecified destination address is a wild-card and always matches, but with a prefix length of zero.
For enabled table entries, if <a href="#D.Device:2.Device.Routing.Router.IPv4Forwarding.Interface"><em>Interface</em></a> is not a valid reference to an IPv4-capable interface (that is attached to the IPv4 stack), then the table entry is inoperable and the CPE MUST set <a href="#D.Device:2.Device.Routing.Router.IPv4Forwarding.Status"><em>Status</em></a> to <a href="#D.Device:2.Device.Routing.Router.IPv4Forwarding.Status.Error_Misconfigured"><em>Error_Misconfigured</em></a>.
Note: The <em>IPv4Forwarding</em> table includes a unique key parameter that is a strong reference. If a strongly referenced object is deleted, the CPE will set the referencing parameter to an empty string. However, doing so under these circumstances might cause the updated <em>IPv4Forwarding</em> row to then violate the table’s unique key constraint; if this occurs, the CPE MUST disable the offending <em>IPv4Forwarding</em> row.</li></ul>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.Routing.Router.IPv4Forwarding.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.Routing.Router.IPv4Forwarding.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.
At most one enabled entry in this table can exist with the same values for all of <a href="#D.Device:2.Device.Routing.Router.IPv4Forwarding.DestIPAddress"><em>DestIPAddress</em></a>, <a href="#D.Device:2.Device.Routing.Router.IPv4Forwarding.DestSubnetMask"><em>DestSubnetMask</em></a>, <a href="#D.Device:2.Device.Routing.Router.IPv4Forwarding.ForwardingPolicy"><em>ForwardingPolicy</em></a>, <a href="#D.Device:2.Device.Routing.Router.IPv4Forwarding.GatewayIPAddress"><em>GatewayIPAddress</em></a>, <a href="#D.Device:2.Device.Routing.Router.IPv4Forwarding.Interface"><em>Interface</em></a> and <a href="#D.Device:2.Device.Routing.Router.IPv4Forwarding.ForwardingMetric"><em>ForwardingMetric</em></a>.</p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.Routing.Router.IPv4Forwarding.Origin">Origin</span></td>
<td>string</td>
<td>R</td>
<td><p>Protocol via which the IPv4 forwarding rule was learned. Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.Routing.Router.IPv4Forwarding.Origin.DHCPv4"><em>DHCPv4</em></span></li>
<li><span id="D.Device:2.Device.Routing.Router.IPv4Forwarding.Origin.OSPF"><em>OSPF</em></span></li>
<li><span id="D.Device:2.Device.Routing.Router.IPv4Forwarding.Origin.IPCP"><em>IPCP</em></span></li>
<li><span id="D.Device:2.Device.Routing.Router.IPv4Forwarding.Origin.RIP"><em>RIP</em></span></li>
<li><span id="D.Device:2.Device.Routing.Router.IPv4Forwarding.Origin.Static"><em>Static</em></span> (For example, present in the factory default configuration, created by the <span class="inserted">Controller,</span> or created by some other management entity (e.g. via a GUI))</li></ul></td>
<td>Static</td>
<td>2.2</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.Routing.Router.IPv6Forwarding.">Device.Routing.Router.{i}.IPv6Forwarding.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>Layer 3 IPv6 forwarding table.
In addition to statically configured routes, this table MUST include dynamic routes learned through layer 3 routing protocols, including RIPng, OSPF, DHCPv6, and RA. The CPE MAY reject attempts to delete or modify a dynamic route entry.
For each incoming packet, the layer 3 forwarding decision is conceptually made as follows:</p>

<ul>
<li>Only enabled table entries with a matching <a href="#D.Device:2.Device.Routing.Router.IPv6Forwarding.ForwardingPolicy"><em>ForwardingPolicy</em></a> are considered, i.e. those that either do not specify a <a href="#D.Device:2.Device.Routing.Router.IPv6Forwarding.ForwardingPolicy"><em>ForwardingPolicy</em></a>, or else specify a <a href="#D.Device:2.Device.Routing.Router.IPv6Forwarding.ForwardingPolicy"><em>ForwardingPolicy</em></a> that matches that of the incoming packet.</li>
<li>Next, table entries that also have a matching destination prefix are considered, and the matching entry with the longest prefix length is applied to the packet (i.e. the entry with the most specific network). An unspecified destination address is a wild-card and always matches, but with a prefix length of zero.
For enabled table entries, if <a href="#D.Device:2.Device.Routing.Router.IPv6Forwarding.Interface"><em>Interface</em></a> is not a valid reference to an IPv6-capable interface (that is attached to the IPv6 stack), then the table entry is inoperable and the CPE MUST set <a href="#D.Device:2.Device.Routing.Router.IPv6Forwarding.Status"><em>Status</em></a> to <a href="#D.Device:2.Device.Routing.Router.IPv6Forwarding.Status.Error_Misconfigured"><em>Error_Misconfigured</em></a>.
This object is based on <em>inetCidrRouteTable</em> from [<a href="#R.RFC4292">RFC4292</a>].</li></ul>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.Routing.Router.IPv6Forwarding.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.Routing.Router.IPv6Forwarding.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.
At most one enabled entry in this table can exist with the same values for all of <a href="#D.Device:2.Device.Routing.Router.IPv6Forwarding.DestIPPrefix"><em>DestIPPrefix</em></a>, <a href="#D.Device:2.Device.Routing.Router.IPv6Forwarding.ForwardingPolicy"><em>ForwardingPolicy</em></a>, <a href="#D.Device:2.Device.Routing.Router.IPv6Forwarding.NextHop"><em>NextHop</em></a>, <a href="#D.Device:2.Device.Routing.Router.IPv6Forwarding.Interface"><em>Interface</em></a> and <a href="#D.Device:2.Device.Routing.Router.IPv6Forwarding.ForwardingMetric"><em>ForwardingMetric</em></a>.</p></td>
<td>-</td>
<td>2.2</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.Routing.Router.IPv6Forwarding.Origin">Origin</span></td>
<td>string</td>
<td>R</td>
<td><p>Protocol via which the IPv6 forwarding rule was learned. Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.Routing.Router.IPv6Forwarding.Origin.DHCPv6"><em>DHCPv6</em></span></li>
<li><span id="D.Device:2.Device.Routing.Router.IPv6Forwarding.Origin.OSPF"><em>OSPF</em></span></li>
<li><span id="D.Device:2.Device.Routing.Router.IPv6Forwarding.Origin.RA"><em>RA</em></span> (Router Advertisement Route Information Option [<a href="#R.RFC4191">RFC4191</a>])</li>
<li><span id="D.Device:2.Device.Routing.Router.IPv6Forwarding.Origin.RIPng"><em>RIPng</em></span> (RIPng for IPv6 [<a href="#R.RFC2080">RFC2080</a>])</li>
<li><span id="D.Device:2.Device.Routing.Router.IPv6Forwarding.Origin.Static"><em>Static</em></span> (For example, present in the factory default configuration, created by the <span class="inserted">Controller,</span> or created by some other management entity (e.g. via a GUI))</li></ul></td>
<td>Static</td>
<td>2.2</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.NeighborDiscovery.">Device.NeighborDiscovery.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>The Neighbor Discovery Protocol (NDP) object [<a href="#R.RFC4861">RFC4861</a>]. This object applies only to IPv6. It contains an <a href="#D.Device:2.Device.NeighborDiscovery.InterfaceSetting."><em>InterfaceSetting</em></a> table that defines the NDP configuration for individual IP interfaces.</td>
<td>-</td>
<td>2.2</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.NeighborDiscovery.InterfaceSetting.">Device.NeighborDiscovery.InterfaceSetting.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>Per-interface Neighbor Discovery Protocol (NDP) configuration [<a href="#R.RFC4861">RFC4861</a>].
For enabled table entries, if <a href="#D.Device:2.Device.NeighborDiscovery.InterfaceSetting.Interface"><em>Interface</em></a> is not a valid reference to an IPv6-capable interface (that is attached to the IPv6 stack), then the table entry is inoperable and the CPE MUST set <a href="#D.Device:2.Device.NeighborDiscovery.InterfaceSetting.Status"><em>Status</em></a> to <a href="#D.Device:2.Device.NeighborDiscovery.InterfaceSetting.Status.Error_Misconfigured"><em>Error_Misconfigured</em></a>.
Note: The <em>InterfaceSetting</em> table includes a unique key parameter that is a strong reference. If a strongly referenced object is deleted, the CPE will set the referencing parameter to an empty string. However, doing so under these circumstances might cause the updated <em>InterfaceSetting</em> row to then violate the table’s unique key constraint; if this occurs, the CPE MUST set <a href="#D.Device:2.Device.NeighborDiscovery.InterfaceSetting.Status"><em>Status</em></a> to <a href="#D.Device:2.Device.NeighborDiscovery.InterfaceSetting.Status.Error_Misconfigured"><em>Error_Misconfigured</em></a> and disable the offending <em>InterfaceSetting</em> row.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.NeighborDiscovery.InterfaceSetting.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.NeighborDiscovery.InterfaceSetting.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.
At most one enabled entry in this table can exist with a given value for <a href="#D.Device:2.Device.NeighborDiscovery.InterfaceSetting.Interface"><em>Interface</em></a>.</p>

<div class="diffs"><p><strong>Changes in 2.13:</strong></p>

<ul>
<li>Added <a href="#D.Device:2.Device.NeighborDiscovery.InterfaceSetting.DADTransmits"><em>DADTransmits</em></a> parameter</li></ul></div></td>
<td>-</td>
<td>2.2</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.NeighborDiscovery.InterfaceSetting.DADTransmits">DADTransmits</span></td>
<td>unsignedInt</td>
<td>W</td>
<td>The number of consecutive Neighbor Solicitation messages sent while performing Duplicate Address Detection on a tentative address (see[<a href="#R.RFC4862">Section 5.1/RFC4862</a>]).
A value of zero indicates that Duplicate Address Detection is not performed on tentative addresses.
A value of one indicates a single transmission with no follow-up retransmissions.
If the value is greater than 1, <a href="#D.Device:2.Device.NeighborDiscovery.InterfaceSetting.RetransTimer"><em>RetransTimer</em></a> defines the delay between consecutive messages.</td>
<td>1</td>
<td>2.13</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.NeighborDiscovery.InterfaceSetting.RetransTimer">RetransTimer</span></td>
<td>unsignedInt(1:)</td>
<td>W</td>
<td>Retransmission interval in <em>milliseconds</em>, as defined in [<a href="#R.RFC4861">RFC4861</a>]. For auto-configuration purposes, <em>RetransTimer</em> specifies the delay between consecutive Neighbor Solicitation transmissions performed during Duplicate Address Detection (DAD) [<a href="#R.RFC4862">Section 5.4/RFC4862</a>], as well as the time a node waits after sending the last Neighbor Solicitation before ending the DAD process.

<div class="diffs"><p><strong>Changes in 2.13:</strong></p>

<ul>
<li>Added unsignedInt <em>1:</em> range</li></ul></div></td>
<td>1000</td>
<td>2.2</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.NeighborDiscovery.InterfaceSetting.RtrSolicitationInterval">RtrSolicitationInterval</span></td>
<td>unsignedInt(4000:)</td>
<td>W</td>
<td>Retransmission interval in <em>milliseconds</em>, as defined in <strong>{{bibref: non-existent RFC4861</strong>{{inserted: unexpected argument 6.3.7 after: []}}<strong>}}</strong>. For auto-configuration purposes, <em>RtrSolicitationInterval</em> specifies the delay between consecutive Router Solicitation transmissions.

<div class="diffs"><p><strong>Changes in 2.13:</strong></p>

<ul>
<li>Added unsignedInt <em>4000:</em> range</li>
<li>Changed default value = <em>4</em> ⇒ <em>4000</em></li></ul></div></td>
<td>4000</td>
<td>2.2</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.IPv6rd.">Device.IPv6rd.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>Settings allowing a CPE to derive and route IPv6 Rapid Deployment (6rd) delegated prefixes as specified in [<a href="#R.RFC5969">RFC5969</a>]. The 6rd mechanism is intended to be implemented only on what [<a href="#R.RFC5969">RFC5969</a>] refers to as <em>Customer Edge Routers</em>, i.e. on gateway devices, that support IPv6 on the LAN side and only have IPv4 connectivity on the WAN side. See the 6rd Theory of Operation <strong>{{bibref: non-existent <span class="inserted">TR-181i2</span>}}</strong> for a description of the working of this 6rd data model.</td>
<td>-</td>
<td>2.2</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.IPv6rd.InterfaceSetting.">Device.IPv6rd.InterfaceSetting.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>6rd [<a href="#R.RFC5969">RFC5969</a>] settings.
A 6rd delegated prefix is expected to be of maximum length 64 bits, and is the concatenation of the following two items:</p>

<ul>
<li>Service provider IPv6 prefix: specified via the <a href="#D.Device:2.Device.IPv6rd.InterfaceSetting.SPIPv6Prefix"><em>SPIPv6Prefix</em></a> parameter</li>
<li>IPv4 address suffix: the IPv4 address with the first <a href="#D.Device:2.Device.IPv6rd.InterfaceSetting.IPv4MaskLength"><em>IPv4MaskLength</em></a> bits removed
This object definition is derived from [<a href="#R.RFC5969">RFC5969</a>] with some minor nomenclature changes.</li></ul>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.IPv6rd.InterfaceSetting.Alias"><em>Alias</em></a>.</p></td>
<td>-</td>
<td>2.2</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.IPv6rd.InterfaceSetting.AllTrafficToBorderRelay">AllTrafficToBorderRelay</span></td>
<td>boolean</td>
<td>W</td>
<td>If <em>true</em>, the destination address for all 6rd traffic will be set (IPv4 destination address) to one of the <a href="#D.Device:2.Device.IPv6rd.InterfaceSetting.BorderRelayIPv4Addresses"><em>BorderRelayIPv4Addresses</em></a>. If <em>false</em>, traffic whose destination address begins with the same prefix as <a href="#D.Device:2.Device.IPv6rd.InterfaceSetting.SPIPv6Prefix"><em>SPIPv6Prefix</em></a> will be sent directly to the destination IPv4 address of the endpoint, which is in the same 6rd domain. See 6rd Theory of Operation for further explanation <strong>{{bibref: non-existent <span class="inserted">TR-181i2</span>}}</strong>.</td>
<td>-</td>
<td>2.2</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.DSLite.">Device.DSLite.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>Settings allowing a CPE to configure and route IPv6 Dual-Stack Lite (DSLite) as specified in [<a href="#R.DSLite">DSLite</a>]. The DS-Lite mechanism is intended to be implemented only on gateway devices that support IPv4 on the LAN side and only have IPv6 connectivity on the WAN side. See the Dual-Stack Lite Theory of Operation <strong>{{bibref: non-existent <span class="inserted">TR-181i2</span>}}</strong> for a description of the working of this DS-Lite data model.</td>
<td>-</td>
<td>2.2</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.DSLite.InterfaceSetting.">Device.DSLite.InterfaceSetting.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>DSLite [<a href="#R.DSLite">DSLite</a>] settings.</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.DSLite.InterfaceSetting.Alias"><em>Alias</em></a>.</p></td>
<td>-</td>
<td>2.2</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.DSLite.InterfaceSetting.EndpointName">EndpointName</span></td>
<td>string(:256)</td>
<td>W</td>
<td>The Fully Qualified Domain Name (FQDN) of the tunnel concentrator (remote endpoint). This parameter is based on <em>OPTION_DS_LITE_NAME</em> from [<a href="#R.DSLite-options">Section 4/DSLite-options</a>] and can be assigned statically (e.g. present in the factory default configuration or set by the <span class="removed">ACS)</span><span class="inserted">Controller)</span> or can be updated dynamically (via DHCPv6). If both statically and dynamically assigned, then <a href="#D.Device:2.Device.DSLite.InterfaceSetting.EndpointAssignmentPrecedence"><em>EndpointAssignmentPrecedence</em></a> indicates whether it is the static configuration or the DHCPv6 configuration that is actually applied to <em>EndpointName</em>. Note: <em>EndpointName</em> is only writable when <a href="#D.Device:2.Device.DSLite.InterfaceSetting.EndpointAssignmentPrecedence"><em>EndpointAssignmentPrecedence</em></a> is <a href="#D.Device:2.Device.DSLite.InterfaceSetting.EndpointAssignmentPrecedence.Static"><em>Static</em></a>; otherwise, <em>EndpointName</em> is automatically configured via the DHCPv6 received option.</td>
<td>-</td>
<td>2.2</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.DSLite.InterfaceSetting.EndpointAddress">EndpointAddress</span></td>
<td><span title="IPv6Address">string(:45)</span></td>
<td>W</td>
<td>[<a href="#T.IPv6Address">IPv6Address</a>] The address of the tunnel concentrator (remote endpoint). This parameter can only be assigned statically (e.g. present in the factory default configuration or set by the <span class="removed">ACS).</span><span class="inserted">Controller).</span></td>
<td>-</td>
<td>2.2</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.DSLite.InterfaceSetting.Origin">Origin</span></td>
<td>string</td>
<td>R</td>
<td><p>Method used to assign <a href="#D.Device:2.Device.DSLite.InterfaceSetting.EndpointAddressInUse"><em>EndpointAddressInUse</em></a>.</p>

<p>Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.DSLite.InterfaceSetting.Origin.DHCPv6"><em>DHCPv6</em></span> (Assigned by DHCPv6 [<a href="#R.RFC3315">RFC3315</a>])</li>
<li><span id="D.Device:2.Device.DSLite.InterfaceSetting.Origin.Static"><em>Static</em></span> (For example, present in the factory default configuration, set by the <span class="inserted">Controller,</span> or set by some other management entity (e.g. via a GUI))</li></ul></td>
<td>-</td>
<td>2.2</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.QoS.">Device.QoS.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>Queue management configuration object.</td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.QoS.DefaultEthernetPriorityMark">DefaultEthernetPriorityMark</span></td>
<td>int(-2:)</td>
<td>W</td>
<td>Ethernet priority code (as defined in [<a href="#R.802.1Q-2011">802.1Q-2011</a>]) to mark traffic not associated with any specified classifier. A value of -1 indicates no change from the incoming packet. A value of -2 indicates automatic marking of EthernetPriority based upon the DSCP value of the incoming packet as defined in <strong>{{bibref: non-existent <span class="inserted">TR-181i2</span>}}</strong>.</td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.QoS.App.">Device.QoS.App.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>Application table.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.QoS.App.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.QoS.App.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.</p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.QoS.App.DefaultEthernetPriorityMark">DefaultEthernetPriorityMark</span></td>
<td>int(-2:)</td>
<td>W</td>
<td>Ethernet priority code (as defined in [<a href="#R.802.1Q-2011">802.1Q-2011</a>]) to mark traffic associated with this App table entry, but not associated with any specified flow. A value of -1 indicates no change from the incoming packet. A value of -2 indicates automatic marking of EthernetPriority based upon the DSCP value of the incoming packet as defined in <strong>{{bibref: non-existent <span class="inserted">TR-181i2</span>}}</strong>.</td>
<td>-1</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.QoS.Flow.">Device.QoS.Flow.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>Flow table.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.QoS.Flow.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.QoS.Flow.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.</p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.QoS.Flow.EthernetPriorityMark">EthernetPriorityMark</span></td>
<td>int(-2:)</td>
<td>W</td>
<td>Ethernet priority code (as defined in [<a href="#R.802.1Q-2011">802.1Q-2011</a>]) to mark traffic with that falls into this flow. A value of -1 indicates no change from the incoming packet. A value of -2 indicates automatic marking of EthernetPriority based upon the DSCP value of the incoming packet as defined in <strong>{{bibref: non-existent <span class="inserted">TR-181i2</span>}}</strong>.</td>
<td>-1</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.QoS.Policer.">Device.QoS.Policer.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>Policer table.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.QoS.Policer.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.QoS.Policer.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.</p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.QoS.Policer.MeterType">MeterType</span></td>
<td>string</td>
<td>W</td>
<td><p>The value MUST be a member of the list reported by the <a href="#D.Device:2.Device.QoS.Policer.PossibleMeterTypes"><em>PossibleMeterTypes</em></a> parameter. Identifies the method of traffic measurement to be used for this policer.[ Each list item is an enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.QoS.Policer.PossibleMeterTypes.SimpleTokenBucket"><em>SimpleTokenBucket</em></span></li>
<li><span id="D.Device:2.Device.QoS.Policer.PossibleMeterTypes.SingleRateThreeColor"><em>SingleRateThreeColor</em></span></li>
<li><span id="D.Device:2.Device.QoS.Policer.PossibleMeterTypes.TwoRateThreeColor"><em>TwoRateThreeColor</em></span>
<span class="removed">]</span> <a href="#D.Device:2.Device.QoS.Policer.PossibleMeterTypes.SimpleTokenBucket"><em>SimpleTokenBucket</em></a> makes use of <a href="#D.Device:2.Device.QoS.Policer.CommittedRate"><em>CommittedRate</em></a> and <a href="#D.Device:2.Device.QoS.Policer.CommittedBurstSize"><em>CommittedBurstSize</em></a>. <a href="#D.Device:2.Device.QoS.Policer.PossibleMeterTypes.SingleRateThreeColor"><em>SingleRateThreeColor</em></a> makes use of <a href="#D.Device:2.Device.QoS.Policer.CommittedRate"><em>CommittedRate</em></a>, <a href="#D.Device:2.Device.QoS.Policer.CommittedBurstSize"><em>CommittedBurstSize</em></a>, and <a href="#D.Device:2.Device.QoS.Policer.ExcessBurstSize"><em>ExcessBurstSize</em></a> as defined in [<a href="#R.RFC2697">RFC2697</a>]. <a href="#D.Device:2.Device.QoS.Policer.PossibleMeterTypes.TwoRateThreeColor"><em>TwoRateThreeColor</em></a> makes use of <a href="#D.Device:2.Device.QoS.Policer.CommittedRate"><em>CommittedRate</em></a>, <a href="#D.Device:2.Device.QoS.Policer.CommittedBurstSize"><em>CommittedBurstSize</em></a>, <a href="#D.Device:2.Device.QoS.Policer.PeakRate"><em>PeakRate</em></a>, and <a href="#D.Device:2.Device.QoS.Policer.PeakBurstSize"><em>PeakBurstSize</em></a> as defined in [<a href="#R.RFC2698">RFC2698</a>].</li></ul></td>
<td>SimpleTokenBucket</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.QoS.QueueStats.">Device.QoS.QueueStats.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>Queue statistics table. This table is managed by the <span class="removed">ACS,</span><span class="inserted">Controller,</span> which will create entries only for those {Queue, Interface} combinations for which statistics are to be collected. Note: The <em>QueueStats</em> table includes unique key parameters that are strong references. If a strongly referenced object is deleted, the CPE will set the referencing parameter to an empty string. However, doing so under these circumstances might cause the updated <em>QueueStats</em> row to then violate the table’s unique key constraint; if this occurs, the CPE MUST disable the offending <em>QueueStats</em> row.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.QoS.QueueStats.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.QoS.QueueStats.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.
At most one enabled entry in this table can exist with the same values for both <a href="#D.Device:2.Device.QoS.QueueStats.Queue"><em>Queue</em></a> and <a href="#D.Device:2.Device.QoS.QueueStats.Interface"><em>Interface</em></a>.</p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.Hosts.">Device.Hosts.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object provides information about each of the hosts on the LAN, including those whose IP address was allocated by the CPE using DHCP as well as hosts with statically allocated IP addresses. It can also include non-IP hosts.</td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.Hosts.Host.">Device.Hosts.Host.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>Host table.</p>

<p>At most one entry in this table can exist with a given value for <strong>{{param: reference to deprecated parameter Device.Hosts.Host.{i}.Alias}}</strong>, or with a given value for <a href="#D.Device:2.Device.Hosts.Host.PhysAddress"><em>PhysAddress</em></a>.</p>

<div class="diffs"><p><strong>Changes in 2.13:</strong></p>

<ul>
<li>Added <a href="#D.Device:2.Device.Hosts.Host.InterfaceType"><em>InterfaceType</em></a> parameter</li></ul></div></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.Hosts.Host.AssociatedDevice">AssociatedDevice</span></td>
<td>string(:256)</td>
<td>R</td>
<td>The value MUST the path name of the <em>AssociatedDevice</em> (or equivalent) table row that models the host, or an empty string if <span class="inserted">either </span>there is no such <span class="removed">table.</span><span class="inserted">table or the host isn’t directly connected to this device (e.g. the host is connected to a Wi-Fi Access Point).</span> For example: <em>Device.WiFi.AccessPoint.1.AssociatedDevice.2</em></td>
<td>-</td>
<td>2.2</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.Hosts.Host.Layer1Interface">Layer1Interface</span></td>
<td>string(:256)</td>
<td>R</td>
<td>The value MUST be the path name of a row in a layer 1 interface table. If <span class="inserted">either </span>the layer 1 <span class="inserted">interface isn’t known or the host isn’t directly connected to this </span>device <span class="removed">isn’t</span><span class="inserted">(e.g.</span> <span class="removed">known,</span><span class="inserted">the host is connected to a Wi-Fi Access Point),</span> then <em>Layer1Interface</em> will be an empty string. For example: <em>Device.Ethernet.Interface.2</em></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.Hosts.Host.Layer3Interface">Layer3Interface</span></td>
<td>string(:256)</td>
<td>R</td>
<td>The value MUST be the Path Name of a row in the <a href="#D.Device:2.Device.IP.Interface."><em>IP.Interface.</em></a> table. If the referenced object is deleted, the parameter value MUST be set to an empty string. If <span class="inserted">either </span>the <span class="removed">entry</span><span class="inserted">layer</span> <span class="removed">represents</span><span class="inserted">3 interface isn’t known or the host isn’t directly connected to this device (e.g. the host is connected to</span> a <span class="removed">non-IP</span><span class="inserted">Wi-Fi</span> <span class="removed">device,</span><span class="inserted">Access Point),</span> then <em>Layer3Interface</em> will be <span class="removed">an empty string</span><span class="inserted">an empty string</span>.</td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Hosts.Host.InterfaceType">InterfaceType</span></td>
<td>string</td>
<td>R</td>
<td><p>Type of physical interface through which this host is connected.</p>

<p>Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.Hosts.Host.InterfaceType.Ethernet"><em>Ethernet</em></span></li>
<li><span id="D.Device:2.Device.Hosts.Host.InterfaceType.G.hn"><em>G.hn</em></span></li>
<li><span id="D.Device:2.Device.Hosts.Host.InterfaceType.HPNA"><em>HPNA</em></span></li>
<li><span id="D.Device:2.Device.Hosts.Host.InterfaceType.HomePlug"><em>HomePlug</em></span></li>
<li><span id="D.Device:2.Device.Hosts.Host.InterfaceType.MoCA"><em>MoCA</em></span></li>
<li><span id="D.Device:2.Device.Hosts.Host.InterfaceType.UPA"><em>UPA</em></span></li>
<li><span id="D.Device:2.Device.Hosts.Host.InterfaceType.Wi-Fi"><em>Wi-Fi</em></span></li>
<li><span id="D.Device:2.Device.Hosts.Host.InterfaceType.Other"><em>Other</em></span></li></ul></td>
<td>-</td>
<td>2.13</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.DNS.">Device.DNS.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>Properties for Domain Name Service (DNS).</td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.DNS.Client.">Device.DNS.Client.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>Client properties for Domain Name Service (DNS). The DNS client resolves FQDN on behalf of device internal (client) applications.</td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.DNS.Client.Server.">Device.DNS.Client.Server.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>This table contains the DNS Server IP address to be used by the DHCP Client (it does <em>not</em> model a DNS Server). Entries are either automatically created as result of DHCP (v4 or v6), IPCP, or RA received DNS server information, or are statically configured by the <span class="removed">ACS.</span><span class="inserted">Controller.</span></p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.DNS.Client.Server.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.DNS.Client.Server.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.
At most one enabled entry in this table can exist with a given value for <a href="#D.Device:2.Device.DNS.Client.Server.DNSServer"><em>DNSServer</em></a>.</p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.DNS.Relay.">Device.DNS.Relay.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>DNS Relay object. The DNS proxy (or relay) function allows the forwarding of local network DNS queries to local or external DNS server(s) [<a href="#R.RFC5625">RFC5625</a>].</td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.DNS.Relay.Forwarding.">Device.DNS.Relay.Forwarding.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>DNS Server forwarding policy to be used by the DNS Relay. Entries are either automatically created as result of DHCP (v4 or v6), IPCP, or RA received DNS server information, or are statically configured by the <span class="removed">ACS.</span><span class="inserted">Controller.</span> Note: Management of re-directing queries to the device embedded DNS server is not defined in this version of the specification.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.DNS.Relay.Forwarding.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.DNS.Relay.Forwarding.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.
At most one enabled entry in this table can exist with a given value for <a href="#D.Device:2.Device.DNS.Relay.Forwarding.DNSServer"><em>DNSServer</em></a>.</p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.DNS.Diagnostics.">Device.DNS.Diagnostics.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>The DNS Diagnostics object containing the <a href="#D.Device:2.Device.DNS.Diagnostics.NSLookupDiagnostics."><em>NSLookupDiagnostics</em></a> test.</td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.DNS.Diagnostics.NSLookupDiagnostics.">Device.DNS.Diagnostics.NSLookupDiagnostics.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object defines access to an IP-layer NS Lookup test for the specified IP interface.
When initiated, the NS Lookup test will contact <a href="#D.Device:2.Device.DNS.Diagnostics.NSLookupDiagnostics.DNSServer"><em>DNSServer</em></a> and look up <a href="#D.Device:2.Device.DNS.Diagnostics.NSLookupDiagnostics.HostName"><em>HostName</em></a> <a href="#D.Device:2.Device.DNS.Diagnostics.NSLookupDiagnostics.NumberOfRepetitions"><em>NumberOfRepetitions</em></a> times.
There will be a <a href="#D.Device:2.Device.DNS.Diagnostics.NSLookupDiagnostics.Result."><em>Result</em></a> instance for each time the device performs a DNS lookup, which is determined by the value of <a href="#D.Device:2.Device.DNS.Diagnostics.NSLookupDiagnostics.NumberOfRepetitions"><em>NumberOfRepetitions</em></a>.
Any previous <a href="#D.Device:2.Device.DNS.Diagnostics.NSLookupDiagnostics.Result."><em>Result</em></a> instances are removed when a new test is initiated.</td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.DNS.Diagnostics.NSLookupDiagnostics.DiagnosticsState">DiagnosticsState</span></td>
<td><span title="DiagnosticsState">string</span></td>
<td>W</td>
<td><p>[Indicates availability of diagnostic data. Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.DNS.Diagnostics.NSLookupDiagnostics.DiagnosticsState.None"><em>None</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.DNS.Diagnostics.NSLookupDiagnostics.DiagnosticsState.Requested"><em>Requested</em></span></li>
<li><span id="D.Device:2.Device.DNS.Diagnostics.NSLookupDiagnostics.DiagnosticsState.Complete"><em>Complete</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.DNS.Diagnostics.NSLookupDiagnostics.DiagnosticsState.Error_DNSServerNotResolved"><em>Error_DNSServerNotResolved</em></span> (Unable to resolve DNSServer Name, READONLY)</li>
<li><span id="D.Device:2.Device.DNS.Diagnostics.NSLookupDiagnostics.DiagnosticsState.Error_Internal"><em>Error_Internal</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.DNS.Diagnostics.NSLookupDiagnostics.DiagnosticsState.Error_Other"><em>Error_Other</em></span> (READONLY)
If the ACS sets the value of this parameter to <a href="#D.Device:2.Device.DNS.Diagnostics.NSLookupDiagnostics.DiagnosticsState.Requested"><em>Requested</em></a>, the CPE MUST initiate the corresponding diagnostic test. When writing, the only allowed value is <a href="#D.Device:2.Device.DNS.Diagnostics.NSLookupDiagnostics.DiagnosticsState.Requested"><em>Requested</em></a>. To ensure the use of the proper test parameters (the writable parameters in this object), the test parameters MUST be set either prior to or at the same time as (in the same SetParameterValues) setting the DiagnosticsState to <a href="#D.Device:2.Device.DNS.Diagnostics.NSLookupDiagnostics.DiagnosticsState.Requested"><em>Requested</em></a>. When requested, the CPE SHOULD wait until after completion of the communication session with the ACS before starting the diagnostic. When the test is completed, the value of this parameter MUST be either <a href="#D.Device:2.Device.DNS.Diagnostics.NSLookupDiagnostics.DiagnosticsState.Complete"><em>Complete</em></a> (if the test completed successfully), or one of the Error values listed above. If the value of this parameter is anything other than <a href="#D.Device:2.Device.DNS.Diagnostics.NSLookupDiagnostics.DiagnosticsState.Complete"><em>Complete</em></a>, the values of the results parameters for this test are indeterminate. When the diagnostic initiated by the ACS is completed (successfully or not), the CPE MUST establish a new connection to the ACS to allow the ACS to view the results, indicating the Event code &ldquo;8 DIAGNOSTICS COMPLETE&rdquo; in the Inform message. After the diagnostic is complete, the value of all result parameters (all read-only parameters in this object) MUST be retained by the CPE until either this diagnostic is run again, or the CPE reboots. After a reboot, if the CPE has not retained the result parameters from the most recent test, it MUST set the value of this parameter to <a href="#D.Device:2.Device.DNS.Diagnostics.NSLookupDiagnostics.DiagnosticsState.None"><em>None</em></a>. Modifying any of the writable parameters in this object except for this one MUST result in the value of this parameter being set to <a href="#D.Device:2.Device.DNS.Diagnostics.NSLookupDiagnostics.DiagnosticsState.None"><em>None</em></a>. While the test is in progress, modifying any of the writable parameters in this object except for this one MUST result in the test being terminated and the value of this parameter being set to <a href="#D.Device:2.Device.DNS.Diagnostics.NSLookupDiagnostics.DiagnosticsState.None"><em>None</em></a>. While the test is in progress, setting this parameter to <a href="#D.Device:2.Device.DNS.Diagnostics.NSLookupDiagnostics.DiagnosticsState.Requested"><em>Requested</em></a> (and possibly modifying other writable parameters in this object) MUST result in the test being terminated and then restarted using the current values of the test parameters.<span class="removed">]</span></li></ul>

<div class="inserted"><p>[<a href="#T.DiagnosticsState">DiagnosticsState</a>] Indicates the availability of diagnostics data. Enumeration of:</p>

<p>Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.DNS.Diagnostics.NSLookupDiagnostics.DiagnosticsState.None"><em>None</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.DNS.Diagnostics.NSLookupDiagnostics.DiagnosticsState.Requested"><em>Requested</em></span></li>
<li><span id="D.Device:2.Device.DNS.Diagnostics.NSLookupDiagnostics.DiagnosticsState.Complete"><em>Complete</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.DNS.Diagnostics.NSLookupDiagnostics.DiagnosticsState.Error_DNSServerNotResolved"><em>Error_DNSServerNotResolved</em></span> (Unable to resolve DNSServer Name, READONLY)</li>
<li><span id="D.Device:2.Device.DNS.Diagnostics.NSLookupDiagnostics.DiagnosticsState.Error_Internal"><em>Error_Internal</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.DNS.Diagnostics.NSLookupDiagnostics.DiagnosticsState.Error_Other"><em>Error_Other</em></span> (READONLY)</li></ul>

<p>If the ACS sets the value of this parameter to <a href="#D.Device:2.Device.DNS.Diagnostics.NSLookupDiagnostics.DiagnosticsState.Requested"><em>Requested</em></a>, the
CPE MUST initiate the corresponding diagnostic test. When writing, the
only allowed values are <a href="#D.Device:2.Device.DNS.Diagnostics.NSLookupDiagnostics.DiagnosticsState.Requested"><em>Requested</em></a> and <strong>{{enum: non-existent Canceled}}</strong>. To
ensure the use of the proper test parameters (the writable parameters in
this object), the test parameters MUST be set, and any errors or
inconsistencies in the test parameters MUST be detected, either prior to
or at the same time as (in the same SetParameterValues) setting this
parameter to <a href="#D.Device:2.Device.DNS.Diagnostics.NSLookupDiagnostics.DiagnosticsState.Requested"><em>Requested</em></a>.</p>

<p>When requested, the CPE SHOULD wait until after completion of the
communication session with the ACS before starting the diagnostic test.</p>

<p>When the test is completed, the value of this parameter MUST be either
<a href="#D.Device:2.Device.DNS.Diagnostics.NSLookupDiagnostics.DiagnosticsState.Complete"><em>Complete</em></a> (if the test completed successfully), or one of the
<em>Error</em> values listed above.</p>

<p>If the value of this parameter is anything other than <a href="#D.Device:2.Device.DNS.Diagnostics.NSLookupDiagnostics.DiagnosticsState.Complete"><em>Complete</em></a>,
the values of the results parameters for this test are indeterminate.</p>

<p>When the diagnostic initiated by the ACS is completed (successfully or
not), but not if it is canceled for any reason, the CPE MUST establish a
new connection to the ACS to allow the ACS to view the results,
indicating the Event code <em>8 DIAGNOSTICS COMPLETE</em> in the Inform
message.</p>

<p>After the diagnostic is complete, the value of all result parameters (all
read-only parameters in this object) MUST be retained by the CPE until
either this diagnostic is run again, or the CPE reboots. After a reboot,
if the CPE has not retained the result parameters from the most recent
test, it MUST set the value of this parameter to <a href="#D.Device:2.Device.DNS.Diagnostics.NSLookupDiagnostics.DiagnosticsState.None"><em>None</em></a>.</p>

<p>Modifying any of the writable parameters in this object except for this
one MUST result in the value of this parameter being set to
<a href="#D.Device:2.Device.DNS.Diagnostics.NSLookupDiagnostics.DiagnosticsState.None"><em>None</em></a>.</p>

<p>While the test is in progress, modifying any of the writable parameters
in this object except for this one MUST result in the test being
terminated and the value of this parameter being set to <a href="#D.Device:2.Device.DNS.Diagnostics.NSLookupDiagnostics.DiagnosticsState.None"><em>None</em></a>.</p>

<p>While the test is in progress, setting this parameter to
<a href="#D.Device:2.Device.DNS.Diagnostics.NSLookupDiagnostics.DiagnosticsState.Requested"><em>Requested</em></a> (and possibly modifying other writable parameters in
this object) MUST result in the test being terminated and then restarted
using the current values of the test parameters.</p>

<p>While the test is in progress, setting this parameter to
<strong>{{enum: non-existent Canceled}}</strong> MUST result in the test being canceled and the value of
this parameter being set to <a href="#D.Device:2.Device.DNS.Diagnostics.NSLookupDiagnostics.DiagnosticsState.None"><em>None</em></a>. If the CPE does not support
the <strong>{{enum: non-existent Canceled}}</strong> value, it MUST return a SPV error with &ldquo;Invalid
Parameter value&rdquo; (9007) to the ACS instead.</p></div>

<p>Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.DNS.Diagnostics.NSLookupDiagnostics.DiagnosticsState.None"><em>None</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.DNS.Diagnostics.NSLookupDiagnostics.DiagnosticsState.Requested"><em>Requested</em></span></li>
<li><span id="D.Device:2.Device.DNS.Diagnostics.NSLookupDiagnostics.DiagnosticsState.Complete"><em>Complete</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.DNS.Diagnostics.NSLookupDiagnostics.DiagnosticsState.Error_DNSServerNotResolved"><em>Error_DNSServerNotResolved</em></span> (Unable to resolve DNSServer Name, READONLY)</li>
<li><span id="D.Device:2.Device.DNS.Diagnostics.NSLookupDiagnostics.DiagnosticsState.Error_Internal"><em>Error_Internal</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.DNS.Diagnostics.NSLookupDiagnostics.DiagnosticsState.Error_Other"><em>Error_Other</em></span> (READONLY)</li></ul>

<p>Active Notification requests for this parameter MAY be denied.</p>

<div class="diffs"><p><strong>Changes in 2.13:</strong></p>

<ul>
<li>Removed <em>string</em> syntax</li>
<li>Added <em>DiagnosticsState</em></li></ul></div></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.DNS.Diagnostics.NSLookupDiagnostics.Interface">Interface</span></td>
<td>string(:256)</td>
<td>W</td>
<td>The value MUST be the Path Name of a table row. <span class="removed">This</span><span class="inserted">The</span> <span class="removed">parameter</span><span class="inserted">layer</span> <span class="removed">specifies</span><span class="inserted">2</span> <span class="removed">the</span><span class="inserted">or</span> <span class="removed">IP-layer</span><span class="inserted">layer 3</span> interface over which the test is to be <span class="removed">performed</span><span class="inserted">performed.</span> <span class="removed">(i.e.</span><span class="inserted">Example:</span> <span class="removed">the</span><span class="inserted"><em>Device.IP.Interface.1</em>,</span> <span class="removed">source IP address to use when performing the test).</span><span class="inserted"><em>Device.Bridge.1.Port.2</em></span> If an empty string is specified, the CPE MUST use <span class="inserted">the interface as directed by </span>its<span class="inserted"> bridging or</span> routing policy <span class="removed">(Forwarding</span><span class="inserted">(<em>Forwarding</em></span> table <span class="removed">entries), if necessary,</span><span class="inserted">entries)</span> to determine the appropriate interface.</td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.NAT.">Device.NAT.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>Properties for Network Address Translation (NAT).
The entire <em>NAT</em> object only applies to IPv4.</td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.NAT.InterfaceSetting.">Device.NAT.InterfaceSetting.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>NAT settings for an associated IP Interface on which NAT is enabled.
For enabled table entries, if <a href="#D.Device:2.Device.NAT.InterfaceSetting.Interface"><em>Interface</em></a> is not a valid reference then the table entry is inoperable and the CPE MUST set <a href="#D.Device:2.Device.NAT.InterfaceSetting.Status"><em>Status</em></a> to <a href="#D.Device:2.Device.NAT.InterfaceSetting.Status.Error_Misconfigured"><em>Error_Misconfigured</em></a>.
Note: The <em>InterfaceSetting</em> table includes a unique key parameter that is a strong reference. If a strongly referenced object is deleted, the CPE will set the referencing parameter to an empty string. However, doing so under these circumstances might cause the updated <em>InterfaceSetting</em> row to then violate the table’s unique key constraint; if this occurs, the CPE MUST set <a href="#D.Device:2.Device.NAT.InterfaceSetting.Status"><em>Status</em></a> to <a href="#D.Device:2.Device.NAT.InterfaceSetting.Status.Error_Misconfigured"><em>Error_Misconfigured</em></a> and disable the offending <em>InterfaceSetting</em> row.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.NAT.InterfaceSetting.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.NAT.InterfaceSetting.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.
At most one enabled entry in this table can exist with a given value for <a href="#D.Device:2.Device.NAT.InterfaceSetting.Interface"><em>Interface</em></a>.</p>

<div class="diffs"><p><strong>Changes in 2.13:</strong></p>

<ul>
<li>Added <a href="#D.Device:2.Device.NAT.InterfaceSetting.TCPTranslationTimeout"><em>TCPTranslationTimeout</em></a> parameter</li>
<li>Added <a href="#D.Device:2.Device.NAT.InterfaceSetting.UDPTranslationTimeout"><em>UDPTranslationTimeout</em></a> parameter</li></ul></div></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.NAT.InterfaceSetting.TCPTranslationTimeout">TCPTranslationTimeout</span></td>
<td>int(-1:)</td>
<td>W</td>
<td>Determines the timeout, in <em>seconds</em>, of NAT translations for TCP sessions. It is the time after which a NAT entry is removed from the NAT table if there is no activity. A value of -1 represents an infinite duration.</td>
<td>300</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.NAT.InterfaceSetting.UDPTranslationTimeout">UDPTranslationTimeout</span></td>
<td>int(-1:)</td>
<td>W</td>
<td>Determines the timeout, in <em>seconds</em>, of NAT translations for UDP bindings. It is the time after which a NAT entry is removed from the NAT table if there is no activity. A value of -1 represents an infinite duration.</td>
<td>30</td>
<td>2.13</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.NAT.PortMapping.">Device.NAT.PortMapping.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>Port mapping table.
This table MUST contain all NAT port mappings associated with this connection, including static and dynamic port mappings programmatically created via local control protocol, such as UPnP.
This table MUST NOT contain dynamic NAT binding entries associated with the normal operation of NAT.
If the CPE hosts a firewall, it is assumed that it will appropriately configure the firewall for the port mapping.
For enabled table entries, if <a href="#D.Device:2.Device.NAT.PortMapping.InternalClient"><em>InternalClient</em></a> is an empty string, or if <a href="#D.Device:2.Device.NAT.PortMapping.Interface"><em>Interface</em></a> is not a valid reference and <a href="#D.Device:2.Device.NAT.PortMapping.AllInterfaces"><em>AllInterfaces</em></a> is <em>false</em>, then the table entry is inoperable and the CPE MUST set <a href="#D.Device:2.Device.NAT.PortMapping.Status"><em>Status</em></a> to <a href="#D.Device:2.Device.NAT.PortMapping.Status.Error_Misconfigured"><em>Error_Misconfigured</em></a>.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.NAT.PortMapping.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.NAT.PortMapping.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.
At most one enabled entry in this table can exist with the same values for all of <a href="#D.Device:2.Device.NAT.PortMapping.RemoteHost"><em>RemoteHost</em></a>, <a href="#D.Device:2.Device.NAT.PortMapping.ExternalPort"><em>ExternalPort</em></a> and <a href="#D.Device:2.Device.NAT.PortMapping.Protocol"><em>Protocol</em></a>.</p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.NAT.PortMapping.InternalClient">InternalClient</span></td>
<td>string(:256)</td>
<td>W</td>
<td>The IP address or DNS host name of an internal client (on the LAN). Support for an IP address is mandatory. If <em>InternalClient</em> is specified as an IP address and the LAN device’s IP address subsequently changes, the port mapping MUST remain associated with the original IP address. Support for DNS host names is OPTIONAL. If <em>InternalClient</em> is specified as a DNS host name and the LAN device’s IP address subsequently changes, the port mapping MUST remain associated with this LAN device. In this case, it is the responsibility of the CPE to maintain the name-to-address mapping in the event of IP address changes. This can be accomplished, for example, by assigning the DNS host name via use of DHCP option 12 (Host Name) or option 81 (FQDN). Note that the <span class="removed">ACS</span><span class="inserted">Controller</span> can learn the host name associated with a given LAN device via the <a href="#D.Device:2.Device.Hosts.Host."><em>Hosts.Host.</em></a> table. Read access to this parameter MUST always return the exact value that was last set by the <span class="removed">ACS.</span><span class="inserted">Controller.</span> For example, if the internal client is set to a DNS host name, it MUST read back as a DNS host name and not as an IP address. It MUST be possible to set the <em>InternalClient</em> to the broadcast IP address 255.255.255.255 for UDP mappings. This is to enable multiple NAT clients to use the same well-known port simultaneously.</td>
<td><em>&lt;Empty&gt;</em></td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.PCP.">Device.PCP.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>Properties for Port Control Protocol (PCP) [<a href="#R.RFC6887">RFC6887</a>]. See the PCP Theory of Operation <strong>{{bibref: non-existent <span class="inserted">TR-181i2</span>}}</strong> for a description of the working of this PCP data model.</td>
<td>-</td>
<td>2.8</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.PCP.Client.">Device.PCP.Client.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>Client properties for Port Control Protocol (PCP). The PCP Client interacts with a PCP Server as defined in [<a href="#R.RFC6887">RFC6887</a>] for internal device applications or LAN device applications via Interworking functions.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.PCP.Client.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.PCP.Client.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.
At most one enabled entry in this table can exist with a given value for <a href="#D.Device:2.Device.PCP.Client.WANInterface"><em>WANInterface</em></a>.</p></td>
<td>-</td>
<td>2.8</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.PCP.Client.Server.">Device.PCP.Client.{i}.Server.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>This table contains the PCP Servers to be used by the PCP Client. Entries are either statically configured or automatically created via DHCP options OPTION_V4_PCP_SERVER and OPTION_V6_PCP_SERVER, as per [<a href="#R.RFC7291">RFC7291</a>].
Each OPTION_V4_PCP_SERVER or OPTION_V6_PCP_SERVER option corresponds to a <em>Server</em> instance. If an option returns multiple addresses then that <em>Server</em> instance has multiple addresses.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.PCP.Client.Server.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.PCP.Client.Server.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.
At most one enabled entry in this table can exist with a given value for <a href="#D.Device:2.Device.PCP.Client.Server.ServerNameOrAddress"><em>ServerNameOrAddress</em></a>.</p></td>
<td>-</td>
<td>2.8</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.PCP.Client.Server.Origin">Origin</span></td>
<td>string</td>
<td>R</td>
<td><p>Method used to assign <a href="#D.Device:2.Device.PCP.Client.Server.ServerNameOrAddress"><em>ServerNameOrAddress</em></a> and create this table entry. Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.PCP.Client.Server.Origin.DHCPv4"><em>DHCPv4</em></span> (<a href="#D.Device:2.Device.PCP.Client.Server.ServerNameOrAddress"><em>ServerNameOrAddress</em></a> is an IPv4 address that was received via OPTION_V4_PCP_SERVER)</li>
<li><span id="D.Device:2.Device.PCP.Client.Server.Origin.DHCPv6"><em>DHCPv6</em></span> (<a href="#D.Device:2.Device.PCP.Client.Server.ServerNameOrAddress"><em>ServerNameOrAddress</em></a> is an IPv6 address that was received via OPTION_V6_PCP_SERVER)</li>
<li><span id="D.Device:2.Device.PCP.Client.Server.Origin.Static"><em>Static</em></span> (<a href="#D.Device:2.Device.PCP.Client.Server.ServerNameOrAddress"><em>ServerNameOrAddress</em></a> is an FQDN, IPv4 address or IPv6 address that was created by the <span class="inserted">Controller,</span> by some other management entity (e.g. via a GUI), or is present in the factory default configuration)
Note: In the <a href="#D.Device:2.Device.PCP.Client.Server.Origin.DHCPv4"><em>DHCPv4</em></a> and <a href="#D.Device:2.Device.PCP.Client.Server.Origin.DHCPv6"><em>DHCPv6</em></a> cases, if more than one IP address is received <a href="#D.Device:2.Device.PCP.Client.Server.ServerNameOrAddress"><em>ServerNameOrAddress</em></a> will be the first address and <a href="#D.Device:2.Device.PCP.Client.Server.AdditionalServerAddresses"><em>AdditionalServerAddresses</em></a> will be the remaining addresses.</li></ul></td>
<td>Static</td>
<td>2.8</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.PCP.Client.Server.InboundMapping.">Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>Inbound Mapping table. This table contains all Inbound Mappings requested by this PCP Client on this PCP Server. Such a mapping is created by a PCP request with OpCode MAP, as described in [<a href="#R.RFC6887">Section 11/RFC6887</a>]. These requests can be issued from internal device applications, from static configuration or from other LAN device applications via interworking functions such as UPnP IGD or PCP proxies. The <a href="#D.Device:2.Device.PCP.Client.Server.InboundMapping.Origin"><em>Origin</em></a> parameter indicates which mechanism requested the mapping. For non-<a href="#D.Device:2.Device.PCP.Client.Server.InboundMapping.Origin.Static"><em>Static</em></a> mappings (here <em>Static</em> refers to the mechanism that created the mapping, not to the <a href="#D.Device:2.Device.PCP.Client.Server.InboundMapping.Lifetime"><em>Lifetime</em></a>), the <span class="removed">ACS</span><span class="inserted">Controller</span> MAY modify the <strong>{{param: empty ref only valid in parameter descriptions}}</strong> parameter but MUST NOT modify any other parameters in the mapping or its sub-objects.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.PCP.Client.Server.InboundMapping.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.PCP.Client.Server.InboundMapping.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.
At most one enabled entry in this table can exist with the same values for all of <a href="#D.Device:2.Device.PCP.Client.Server.InboundMapping.InternalPort"><em>InternalPort</em></a>, <a href="#D.Device:2.Device.PCP.Client.Server.InboundMapping.ProtocolNumber"><em>ProtocolNumber</em></a> and <a href="#D.Device:2.Device.PCP.Client.Server.InboundMapping.ThirdPartyAddress"><em>ThirdPartyAddress</em></a>.</p></td>
<td>-</td>
<td>2.8</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.PCP.Client.Server.InboundMapping.Origin">Origin</span></td>
<td>string</td>
<td>R</td>
<td><p>Mechanism via which the mapping was requested. Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.PCP.Client.Server.InboundMapping.Origin.Internal"><em>Internal</em></span> (Requested via internal device application)</li>
<li><span id="D.Device:2.Device.PCP.Client.Server.InboundMapping.Origin.UPnP_IWF"><em>UPnP_IWF</em></span> (Requested via UPnP IGD interworking function)</li>
<li><span id="D.Device:2.Device.PCP.Client.Server.InboundMapping.Origin.PCP_Proxy"><em>PCP_Proxy</em></span> (Requested via PCP proxy)</li>
<li><span id="D.Device:2.Device.PCP.Client.Server.InboundMapping.Origin.Static"><em>Static</em></span> (Requested via static configuration, i.e. created by the <span class="inserted">Controller,</span> by some other management entity (e.g. via a GUI), or is present in the factory default configuration)</li></ul></td>
<td>-</td>
<td>2.8</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.PCP.Client.Server.OutboundMapping.">Device.PCP.Client.{i}.Server.{i}.OutboundMapping.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>Outbound Mapping table. This table contains all Outbound Mappings requested by this PCP Client on this PCP Server. Such a mapping is created by a PCP request with OpCode PEER, as described in [<a href="#R.RFC6887">Section 12/RFC6887</a>]. These requests can be issued from internal device applications, from static configuration or from other LAN device applications via interworking functions such as UPnP IGD or PCP proxies. The <a href="#D.Device:2.Device.PCP.Client.Server.OutboundMapping.Origin"><em>Origin</em></a> parameter indicates which mechanism requested the mapping. For non-<a href="#D.Device:2.Device.PCP.Client.Server.OutboundMapping.Origin.Static"><em>Static</em></a> mappings (here <em>Static</em> refers to the mechanism that created the mapping, not to the <a href="#D.Device:2.Device.PCP.Client.Server.OutboundMapping.Lifetime"><em>Lifetime</em></a>), the <span class="removed">ACS</span><span class="inserted">Controller</span> MAY modify the <strong>{{param: empty ref only valid in parameter descriptions}}</strong> parameter but MUST NOT modify any other parameters in the mapping or its sub-objects.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.PCP.Client.Server.OutboundMapping.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.PCP.Client.Server.OutboundMapping.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.
At most one enabled entry in this table can exist with the same values for all of <a href="#D.Device:2.Device.PCP.Client.Server.OutboundMapping.InternalPort"><em>InternalPort</em></a>, <a href="#D.Device:2.Device.PCP.Client.Server.OutboundMapping.ProtocolNumber"><em>ProtocolNumber</em></a>, <a href="#D.Device:2.Device.PCP.Client.Server.OutboundMapping.ThirdPartyAddress"><em>ThirdPartyAddress</em></a>, <a href="#D.Device:2.Device.PCP.Client.Server.OutboundMapping.RemoteHostIPAddress"><em>RemoteHostIPAddress</em></a> and <a href="#D.Device:2.Device.PCP.Client.Server.OutboundMapping.RemotePort"><em>RemotePort</em></a>.</p></td>
<td>-</td>
<td>2.8</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.PCP.Client.Server.OutboundMapping.Origin">Origin</span></td>
<td>string</td>
<td>R</td>
<td><p>Mechanism via which the mapping was requested. Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.PCP.Client.Server.OutboundMapping.Origin.Internal"><em>Internal</em></span> (Requested via internal device application)</li>
<li><span id="D.Device:2.Device.PCP.Client.Server.OutboundMapping.Origin.UPnP_IWF"><em>UPnP_IWF</em></span> (Requested via UPnP IGD interworking function)</li>
<li><span id="D.Device:2.Device.PCP.Client.Server.OutboundMapping.Origin.PCP_Proxy"><em>PCP_Proxy</em></span> (Requested via PCP proxy)</li>
<li><span id="D.Device:2.Device.PCP.Client.Server.OutboundMapping.Origin.Static"><em>Static</em></span> (Requested via static configuration, i.e. created by the <span class="inserted">Controller,</span> by some other management entity (e.g. via a GUI), or is present in the factory default configuration)</li></ul></td>
<td>-</td>
<td>2.8</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.DHCPv4.">Device.DHCPv4.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>The Dynamic Host Configuration Protocol (DHCP) IPv4 object [<a href="#R.RFC2131">RFC2131</a>]. This entire object applies to IPv4 only. It contains the <a href="#D.Device:2.Device.DHCPv4.Client."><em>Client</em></a>, <a href="#D.Device:2.Device.DHCPv4.Server."><em>Server</em></a>, and <a href="#D.Device:2.Device.DHCPv4.Relay."><em>Relay</em></a> objects.</td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.DHCPv4.Server.">Device.DHCPv4.Server.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>DHCP server configuration.</td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.DHCPv4.Server.Pool.">Device.DHCPv4.Server.Pool.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>DHCP conditional serving pool table.
Each instance of this object defines a DHCP conditional serving pool. Client requests are associated with pools based on criteria such as source interface, supplied DHCP options, and MAC address.
Overlapping pool ranges MUST be supported.
For enabled table entries, if <a href="#D.Device:2.Device.DHCPv4.Server.Pool.Interface"><em>Interface</em></a> is not a valid reference, or <a href="#D.Device:2.Device.DHCPv4.Server.Pool.MinAddress"><em>MinAddress</em></a>, <a href="#D.Device:2.Device.DHCPv4.Server.Pool.MaxAddress"><em>MaxAddress</em></a>, or <a href="#D.Device:2.Device.DHCPv4.Server.Pool.SubnetMask"><em>SubnetMask</em></a> is not a valid value, then the table entry is inoperable and the CPE MUST set <a href="#D.Device:2.Device.DHCPv4.Server.Pool.Status"><em>Status</em></a> to <a href="#D.Device:2.Device.DHCPv4.Server.Pool.Status.Error_Misconfigured"><em>Error_Misconfigured</em></a>.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.DHCPv4.Server.Pool.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.DHCPv4.Server.Pool.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.</p>

<div class="diffs"><p><strong>Changes in 2.13:</strong></p>

<ul>
<li>Added <a href="#D.Device:2.Device.DHCPv4.Server.Pool.AllowedDevices"><em>AllowedDevices</em></a> parameter</li></ul></div></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.DHCPv4.Server.Pool.AllowedDevices">AllowedDevices</span></td>
<td>string</td>
<td>W</td>
<td><p>Pool association criterion. Determines which devices are allowed, Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.DHCPv4.Server.Pool.AllowedDevices.All"><em>All</em></span> (All clients are served)</li>
<li><span id="D.Device:2.Device.DHCPv4.Server.Pool.AllowedDevices.Known"><em>Known</em></span> (Only clients, whose MAC address is listed in the <a href="#D.Device:2.Device.DHCPv4.Server.Pool.Client."><em>Client.{i}.</em></a> table (parameter <a href="#D.Device:2.Device.DHCPv4.Server.Pool.Client.Chaddr"><em>Client.{i}.Chaddr</em></a>) or in the <a href="#D.Device:2.Device.DHCPv4.Server.Pool.StaticAddress."><em>StaticAddress.{i}.</em></a> table (parameter <a href="#D.Device:2.Device.DHCPv4.Server.Pool.StaticAddress.Chaddr"><em>StaticAddress.{i}.Chaddr</em></a>) are served. The parameter <strong>{{param: non-existent #.Chaddr}}</strong> is not used, if this value is set)</li>
<li><span id="D.Device:2.Device.DHCPv4.Server.Pool.AllowedDevices.Unknown"><em>Unknown</em></span> (Only clients, whose MAC address is <strong>not</strong> listed in the <a href="#D.Device:2.Device.DHCPv4.Server.Pool.Client."><em>Client.{i}.</em></a> table (parameter <a href="#D.Device:2.Device.DHCPv4.Server.Pool.Client.Chaddr"><em>Client.{i}.Chaddr</em></a>) or in the <a href="#D.Device:2.Device.DHCPv4.Server.Pool.StaticAddress."><em>StaticAddress.{i}.</em></a> table (parameter <a href="#D.Device:2.Device.DHCPv4.Server.Pool.StaticAddress.Chaddr"><em>StaticAddress.{i}.Chaddr</em></a>) are served)</li></ul></td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.DHCPv4.Server.Pool.StaticAddressNumberOfEntries">StaticAddressNumberOfEntries</span></td>
<td>unsignedInt</td>
<td>R</td>
<td><strong>{{numentries: not associated with a table}}</strong>

<div class="diffs"><p><strong>Changes in 2.13:</strong></p>

<ul>
<li>Removed <em>unsignedInt</em> syntax <em>0</em> default</li></ul></div></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.DHCPv4.Server.Pool.OptionNumberOfEntries">OptionNumberOfEntries</span></td>
<td>unsignedInt</td>
<td>R</td>
<td><strong>{{numentries: not associated with a table}}</strong>

<div class="diffs"><p><strong>Changes in 2.13:</strong></p>

<ul>
<li>Removed <em>unsignedInt</em> syntax <em>0</em> default</li></ul></div></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.DHCPv6.">Device.DHCPv6.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>The Dynamic Host Configuration Protocol (DHCP) IPv6 object [<a href="#R.RFC3315">RFC3315</a>]. This entire object applies to IPv6 only. It contains the <a href="#D.Device:2.Device.DHCPv6.Client."><em>Client</em></a> and <a href="#D.Device:2.Device.DHCPv6.Server."><em>Server</em></a> objects.</td>
<td>-</td>
<td>2.2</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.DHCPv6.Server.">Device.DHCPv6.Server.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>DHCPv6 server configuration.</td>
<td>-</td>
<td>2.2</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.DHCPv6.Server.Pool.">Device.DHCPv6.Server.Pool.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>DHCPv6 server pool table.
Each instance of this object defines a DHCPv6 server pool. Client requests are associated with pools based on criteria such as source interface, supplied DHCPv6 options, and source address.
Overlapping pool ranges MUST be supported.
For enabled table entries, if <a href="#D.Device:2.Device.DHCPv6.Server.Pool.Interface"><em>Interface</em></a> is not a valid reference to an IPv6-capable interface (that is attached to the IPv6 stack) then the table entry is inoperable and the CPE MUST set <a href="#D.Device:2.Device.DHCPv6.Server.Pool.Status"><em>Status</em></a> to <a href="#D.Device:2.Device.DHCPv6.Server.Pool.Status.Error_Misconfigured"><em>Error_Misconfigured</em></a>.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.DHCPv6.Server.Pool.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.DHCPv6.Server.Pool.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.
At most one enabled entry in this table can exist with a given value for <a href="#D.Device:2.Device.DHCPv6.Server.Pool.Order"><em>Order</em></a>.</p></td>
<td>-</td>
<td>2.2</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.DHCPv6.Server.Pool.ClientNumberOfEntries">ClientNumberOfEntries</span></td>
<td>unsignedInt</td>
<td>R</td>
<td><strong>{{numentries: not associated with a table}}</strong>

<div class="diffs"><p><strong>Changes in 2.13:</strong></p>

<ul>
<li>Removed <em>unsignedInt</em> syntax <em>0</em> default</li></ul></div></td>
<td>-</td>
<td>2.2</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.DHCPv6.Server.Pool.OptionNumberOfEntries">OptionNumberOfEntries</span></td>
<td>unsignedInt</td>
<td>R</td>
<td><strong>{{numentries: not associated with a table}}</strong>

<div class="diffs"><p><strong>Changes in 2.13:</strong></p>

<ul>
<li>Removed <em>unsignedInt</em> syntax <em>0</em> default</li></ul></div></td>
<td>-</td>
<td>2.2</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.SmartCardReaders.">Device.SmartCardReaders.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>SmartCardReaders object that contains the <a href="#D.Device:2.Device.SmartCardReaders.SmartCardReader."><em>SmartCardReader</em></a> table.</td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.SmartCardReaders.SmartCardReader.">Device.SmartCardReaders.SmartCardReader.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>This object describes the characteristics of the smart card reader.</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.SmartCardReaders.SmartCardReader.Name"><em>Name</em></a>, or with a given value for <a href="#D.Device:2.Device.SmartCardReaders.SmartCardReader.Alias"><em>Alias</em></a>.</p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.SmartCardReaders.SmartCardReader.SmartCard.">Device.SmartCardReaders.SmartCardReader.{i}.SmartCard.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>Status of currently associated smart card.</td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.SmartCardReaders.SmartCardReader.SmartCard.Type">Type</span></td>
<td>string</td>
<td>R</td>
<td><p>Smart Card Type. Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.SmartCardReaders.SmartCardReader.SmartCard.Type.CA"><em>CA</em></span></li>
<li><span id="D.Device:2.Device.SmartCardReaders.SmartCardReader.SmartCard.Type.DRM"><em>DRM</em></span></li>
<li><span id="D.Device:2.Device.SmartCardReaders.SmartCardReader.SmartCard.Type.UICC"><em>UICC</em></span>
Vendors can extend the enumerated values with vendor specific extensions, in which case the rules outlined in <strong>{{bibref: non-existent <span class="inserted">TR-106</span>}}</strong> MUST be adhered to.</li></ul></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.SmartCardReaders.SmartCardReader.SmartCard.Application">Application</span></td>
<td>string[]</td>
<td>R</td>
<td><p>Comma-separated list of strings. Indicates Smart Card Application(s). <em>Application</em> is only relevant when <a href="#D.Device:2.Device.SmartCardReaders.SmartCardReader.SmartCard.Type"><em>Type</em></a> has a value of UICC, otherwise it is an empty string. Each list item is an enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.SmartCardReaders.SmartCardReader.SmartCard.Application.SIM"><em>SIM</em></span></li>
<li><span id="D.Device:2.Device.SmartCardReaders.SmartCardReader.SmartCard.Application.USIM"><em>USIM</em></span></li>
<li><span id="D.Device:2.Device.SmartCardReaders.SmartCardReader.SmartCard.Application.ISIM"><em>ISIM</em></span>
Vendors can extend the enumerated values with vendor specific extensions, in which case the rules outlined in <strong>{{bibref: non-existent <span class="inserted">TR-106</span>}}</strong> MUST be adhered to.</li></ul></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.SelfTestDiagnostics.">Device.SelfTestDiagnostics.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This diagnostics test is vendor-specific and MAY include testing hardware, software, and/or firmware.</td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.SelfTestDiagnostics.DiagnosticsState">DiagnosticsState</span></td>
<td><span title="DiagnosticsState">string</span></td>
<td>W</td>
<td><p>[Indicates availability of diagnostic data. Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.SelfTestDiagnostics.DiagnosticsState.None"><em>None</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.SelfTestDiagnostics.DiagnosticsState.Requested"><em>Requested</em></span></li>
<li><span id="D.Device:2.Device.SelfTestDiagnostics.DiagnosticsState.Complete"><em>Complete</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.SelfTestDiagnostics.DiagnosticsState.Error_Internal"><em>Error_Internal</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.SelfTestDiagnostics.DiagnosticsState.Error_Other"><em>Error_Other</em></span> (READONLY)
If the ACS sets the value of this parameter to <a href="#D.Device:2.Device.SelfTestDiagnostics.DiagnosticsState.Requested"><em>Requested</em></a>, the CPE MUST initiate the corresponding diagnostic test. When writing, the only allowed value is <a href="#D.Device:2.Device.SelfTestDiagnostics.DiagnosticsState.Requested"><em>Requested</em></a>. To ensure the use of the proper test parameters (the writable parameters in this object), the test parameters MUST be set either prior to or at the same time as (in the same SetParameterValues) setting the DiagnosticsState to Requested. When requested, the CPE SHOULD wait until after completion of the communication session with the ACS before starting the diagnostic. When the test is completed, the value of this parameter MUST be either <a href="#D.Device:2.Device.SelfTestDiagnostics.DiagnosticsState.Complete"><em>Complete</em></a> (if the test completed successfully), or one of the Error values listed above. If the value of this parameter is anything other than <a href="#D.Device:2.Device.SelfTestDiagnostics.DiagnosticsState.Complete"><em>Complete</em></a>, the values of the results parameters for this test are indeterminate. When the diagnostic initiated by the ACS is completed (successfully or not), the CPE MUST establish a new connection to the ACS to allow the ACS to view the results, indicating the Event code &ldquo;8 DIAGNOSTICS COMPLETE&rdquo; in the Inform message. After the diagnostic is complete, the value of all result parameters (all read-only parameters in this object) MUST be retained by the CPE until either this diagnostic is run again, or the CPE reboots. After a reboot, if the CPE has not retained the result parameters from the most recent test, it MUST set the value of this parameter to <a href="#D.Device:2.Device.SelfTestDiagnostics.DiagnosticsState.None"><em>None</em></a>. Modifying any of the writable parameters in this object except for this one MUST result in the value of this parameter being set to <a href="#D.Device:2.Device.SelfTestDiagnostics.DiagnosticsState.None"><em>None</em></a>. While the test is in progress, modifying any of the writable parameters in this object except for this one MUST result in the test being terminated and the value of this parameter being set to <a href="#D.Device:2.Device.SelfTestDiagnostics.DiagnosticsState.None"><em>None</em></a>. While the test is in progress, setting this parameter to <a href="#D.Device:2.Device.SelfTestDiagnostics.DiagnosticsState.Requested"><em>Requested</em></a> (and possibly modifying other writable parameters in this object) MUST result in the test being terminated and then restarted using the current values of the test parameters.<span class="removed">]</span></li></ul>

<div class="inserted"><p>[<a href="#T.DiagnosticsState">DiagnosticsState</a>] Indicates the availability of diagnostics data. Enumeration of:</p>

<p>Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.SelfTestDiagnostics.DiagnosticsState.None"><em>None</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.SelfTestDiagnostics.DiagnosticsState.Requested"><em>Requested</em></span></li>
<li><span id="D.Device:2.Device.SelfTestDiagnostics.DiagnosticsState.Complete"><em>Complete</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.SelfTestDiagnostics.DiagnosticsState.Error_Internal"><em>Error_Internal</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.SelfTestDiagnostics.DiagnosticsState.Error_Other"><em>Error_Other</em></span> (READONLY)</li></ul>

<p>If the ACS sets the value of this parameter to <a href="#D.Device:2.Device.SelfTestDiagnostics.DiagnosticsState.Requested"><em>Requested</em></a>, the
CPE MUST initiate the corresponding diagnostic test. When writing, the
only allowed values are <a href="#D.Device:2.Device.SelfTestDiagnostics.DiagnosticsState.Requested"><em>Requested</em></a> and <strong>{{enum: non-existent Canceled}}</strong>. To
ensure the use of the proper test parameters (the writable parameters in
this object), the test parameters MUST be set, and any errors or
inconsistencies in the test parameters MUST be detected, either prior to
or at the same time as (in the same SetParameterValues) setting this
parameter to <a href="#D.Device:2.Device.SelfTestDiagnostics.DiagnosticsState.Requested"><em>Requested</em></a>.</p>

<p>When requested, the CPE SHOULD wait until after completion of the
communication session with the ACS before starting the diagnostic test.</p>

<p>When the test is completed, the value of this parameter MUST be either
<a href="#D.Device:2.Device.SelfTestDiagnostics.DiagnosticsState.Complete"><em>Complete</em></a> (if the test completed successfully), or one of the
<em>Error</em> values listed above.</p>

<p>If the value of this parameter is anything other than <a href="#D.Device:2.Device.SelfTestDiagnostics.DiagnosticsState.Complete"><em>Complete</em></a>,
the values of the results parameters for this test are indeterminate.</p>

<p>When the diagnostic initiated by the ACS is completed (successfully or
not), but not if it is canceled for any reason, the CPE MUST establish a
new connection to the ACS to allow the ACS to view the results,
indicating the Event code <em>8 DIAGNOSTICS COMPLETE</em> in the Inform
message.</p>

<p>After the diagnostic is complete, the value of all result parameters (all
read-only parameters in this object) MUST be retained by the CPE until
either this diagnostic is run again, or the CPE reboots. After a reboot,
if the CPE has not retained the result parameters from the most recent
test, it MUST set the value of this parameter to <a href="#D.Device:2.Device.SelfTestDiagnostics.DiagnosticsState.None"><em>None</em></a>.</p>

<p>Modifying any of the writable parameters in this object except for this
one MUST result in the value of this parameter being set to
<a href="#D.Device:2.Device.SelfTestDiagnostics.DiagnosticsState.None"><em>None</em></a>.</p>

<p>While the test is in progress, modifying any of the writable parameters
in this object except for this one MUST result in the test being
terminated and the value of this parameter being set to <a href="#D.Device:2.Device.SelfTestDiagnostics.DiagnosticsState.None"><em>None</em></a>.</p>

<p>While the test is in progress, setting this parameter to
<a href="#D.Device:2.Device.SelfTestDiagnostics.DiagnosticsState.Requested"><em>Requested</em></a> (and possibly modifying other writable parameters in
this object) MUST result in the test being terminated and then restarted
using the current values of the test parameters.</p>

<p>While the test is in progress, setting this parameter to
<strong>{{enum: non-existent Canceled}}</strong> MUST result in the test being canceled and the value of
this parameter being set to <a href="#D.Device:2.Device.SelfTestDiagnostics.DiagnosticsState.None"><em>None</em></a>. If the CPE does not support
the <strong>{{enum: non-existent Canceled}}</strong> value, it MUST return a SPV error with &ldquo;Invalid
Parameter value&rdquo; (9007) to the ACS instead.</p></div>

<p>Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.SelfTestDiagnostics.DiagnosticsState.None"><em>None</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.SelfTestDiagnostics.DiagnosticsState.Requested"><em>Requested</em></span></li>
<li><span id="D.Device:2.Device.SelfTestDiagnostics.DiagnosticsState.Complete"><em>Complete</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.SelfTestDiagnostics.DiagnosticsState.Error_Internal"><em>Error_Internal</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.SelfTestDiagnostics.DiagnosticsState.Error_Other"><em>Error_Other</em></span> (READONLY)</li></ul>

<p>Active Notification requests for this parameter MAY be denied.</p>

<div class="diffs"><p><strong>Changes in 2.13:</strong></p>

<ul>
<li>Removed <em>string</em> syntax</li>
<li>Added <em>DiagnosticsState</em></li></ul></div></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.Firewall.">Device.Firewall.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>Firewall configuration object. The <a href="#D.Device:2.Device.Firewall.Config"><em>Config</em></a> parameter enables and disables the Firewall, and can select either a predefined configuration (<a href="#D.Device:2.Device.Firewall.Config.High"><em>High</em></a> or <a href="#D.Device:2.Device.Firewall.Config.Low"><em>Low</em></a>) or an explicitly-defined <a href="#D.Device:2.Device.Firewall.Config.Advanced"><em>Advanced</em></a> configuration. For an <a href="#D.Device:2.Device.Firewall.Config.Advanced"><em>Advanced</em></a> configuration, <a href="#D.Device:2.Device.Firewall.AdvancedLevel"><em>AdvancedLevel</em></a> controls the currently active Firewall Level, and the Firewall Levels are defined in the <a href="#D.Device:2.Device.Firewall.Level."><em>Level</em></a>, <a href="#D.Device:2.Device.Firewall.Chain."><em>Chain</em></a> and <a href="#D.Device:2.Device.Firewall.Chain.Rule."><em>Chain.{i}.Rule</em></a> tables. The Firewall rules modeled by this object operate only on the forwarding path. This means that they affect only routed traffic, and do not affect traffic that is destined for or generated by the CPE. Note that any <a href="#D.Device:2.Device.NAT."><em>NAT</em></a> processing on the ingress packet occurs before Firewall rules are applied so, for example, the Firewall rules will see the translated destination IP address and port in a downstream packet that has passed through the NAT. See <strong>{{bibref: non-existent <span class="inserted">TR-181i2</span>}}</strong> for an example <a href="#D.Device:2.Device.Firewall.Config.Advanced"><em>Advanced</em></a> configuration.</td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.Firewall.Config">Config</span></td>
<td>string</td>
<td>W</td>
<td><p>How this firewall is configured. Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.Firewall.Config.High"><em>High</em></span> (The firewall implements the &ldquo;Traffic Denied Inbound&rdquo; and &ldquo;Minimally Permit Common Services Outbound&rdquo; components of the ICSA residential certification’s Required Services Security Policy [<a href="#R.ICSA-Residential">ICSA-Residential</a>]. If DoS and vulnerability protections are implemented [<a href="#R.ICSA-Baseline">ICSA-Baseline</a>], these are enabled)</li>
<li><span id="D.Device:2.Device.Firewall.Config.Low"><em>Low</em></span> (All Outbound traffic and pinhole-defined Inbound traffic is allowed. If DoS and vulnerability protections are implemented [<a href="#R.ICSA-Baseline">ICSA-Baseline</a>], these are enabled)</li>
<li><span id="D.Device:2.Device.Firewall.Config.Off"><em>Off</em></span> (All Inbound and Outbound traffic is allowed, and the CPE is only protected by NAT settings (if supported and enabled). If DoS and vulnerability protections are implemented [<a href="#R.ICSA-Baseline">ICSA-Baseline</a>], these are disabled. This value is DEPRECATED because it is the same as setting <a href="#D.Device:2.Device.Firewall.Enable"><em>Enable</em></a> to <em>false</em>, DEPRECATED)</li>
<li><span id="D.Device:2.Device.Firewall.Config.Advanced"><em>Advanced</em></span> (Advanced firewall configuration applies, as specified by <a href="#D.Device:2.Device.Firewall.AdvancedLevel"><em>AdvancedLevel</em></a>, OPTIONAL)
Vendors can extend the enumerated values with vendor specific extensions, in which case the rules outlined in <strong>{{bibref: non-existent <span class="inserted">TR-106</span>}}</strong> MUST be adhered to.</li></ul></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.PeriodicStatistics.">Device.PeriodicStatistics.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object configures collection of periodic statistics for the device. Periodic statistics are measured over a sample interval (which can be aligned with absolute time) and are made available to the <span class="removed">ACS</span><span class="inserted">Controller</span> as a comma-separated list of the most recent <n> samples. This object provides a single set of global settings that affect the entire device unless overridden locally.</td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.PeriodicStatistics.SampleSet.">Device.PeriodicStatistics.SampleSet.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>Periodic statistics sample set table. Each sample set has its own sample interval etc.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.PeriodicStatistics.SampleSet.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.PeriodicStatistics.SampleSet.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.
At most one enabled entry in this table can exist with a given value for <a href="#D.Device:2.Device.PeriodicStatistics.SampleSet.Name"><em>Name</em></a>.</p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.PeriodicStatistics.SampleSet.Status">Status</span></td>
<td>string</td>
<td>R</td>
<td><p>Indicates availability of Sample statistics. Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.PeriodicStatistics.SampleSet.Status.Disabled"><em>Disabled</em></span> (Collection is disabled)</li>
<li><span id="D.Device:2.Device.PeriodicStatistics.SampleSet.Status.Enabled"><em>Enabled</em></span> (Collection is enabled)</li>
<li><span id="D.Device:2.Device.PeriodicStatistics.SampleSet.Status.Trigger"><em>Trigger</em></span> (Collection is enabled and the <span class="inserted">Controller</span> SHOULD now fetch the collected data)
The <a href="#D.Device:2.Device.PeriodicStatistics.SampleSet.Status.Trigger"><em>Trigger</em></a> value is only used for triggering the <span class="removed">ACS</span><span class="inserted">Controller</span> to fetch the collected data and can only be used when <a href="#D.Device:2.Device.PeriodicStatistics.SampleSet.FetchSamples"><em>FetchSamples</em></a> is in the range [1:<a href="#D.Device:2.Device.PeriodicStatistics.SampleSet.ReportSamples"><em>ReportSamples</em></a>]. The transition from <a href="#D.Device:2.Device.PeriodicStatistics.SampleSet.Status.Enabled"><em>Enabled</em></a> to <a href="#D.Device:2.Device.PeriodicStatistics.SampleSet.Status.Trigger"><em>Trigger</em></a> to <a href="#D.Device:2.Device.PeriodicStatistics.SampleSet.Status.Enabled"><em>Enabled</em></a> MUST be instantaneous and so will result in only a single value change for notification purposes.</li></ul></td>
<td>Disabled</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.PeriodicStatistics.SampleSet.TimeReference">TimeReference</span></td>
<td>dateTime</td>
<td>W</td>
<td>An absolute time reference in UTC to determine when sample intervals will complete. Each sample interval MUST complete at this reference time plus or minus an integer multiple of <a href="#D.Device:2.Device.PeriodicStatistics.SampleSet.SampleInterval"><em>SampleInterval</em></a>. <em>TimeReference</em> is used only to set the &ldquo;phase&rdquo; of the sample and fetch intervals. The actual value of <em>TimeReference</em> can be arbitrarily far into the past or future. This time reference also determines when the <a href="#D.Device:2.Device.PeriodicStatistics.SampleSet.Status"><em>Status</em></a> <a href="#D.Device:2.Device.PeriodicStatistics.SampleSet.Status.Enabled"><em>Enabled</em></a> to <a href="#D.Device:2.Device.PeriodicStatistics.SampleSet.Status.Trigger"><em>Trigger</em></a> to <a href="#D.Device:2.Device.PeriodicStatistics.SampleSet.Status.Enabled"><em>Enabled</em></a> transitions that are controlled by <a href="#D.Device:2.Device.PeriodicStatistics.SampleSet.FetchSamples"><em>FetchSamples</em></a> will occur. If collection of periodic statistics is enabled and <a href="#D.Device:2.Device.PeriodicStatistics.SampleSet.FetchSamples"><em>FetchSamples</em></a> is in the range [1:<a href="#D.Device:2.Device.PeriodicStatistics.SampleSet.ReportSamples"><em>ReportSamples</em></a>] then each such <a href="#D.Device:2.Device.PeriodicStatistics.SampleSet.Status"><em>Status</em></a> transition MUST occur at this reference time plus or minus an integer multiple of <a href="#D.Device:2.Device.PeriodicStatistics.SampleSet.FetchSamples"><em>FetchSamples</em></a> * <a href="#D.Device:2.Device.PeriodicStatistics.SampleSet.SampleInterval"><em>SampleInterval</em></a> (the fetch interval). If <em>TimeReference</em> is changed while collection of periodic statistics is enabled, any stored samples are discarded, and the first sample interval begins immediately. The Unknown Time value defined in <strong>{{bibref: non-existent <span class="inserted">TR-106</span>}}</strong> indicates that no particular time reference is specified. That is, the CPE MAY locally choose the time reference, and is required only to adhere to the specified sample and fetch intervals. If absolute time is not available to the CPE, its sample and fetch interval behavior MUST be the same as if the <em>TimeReference</em> parameter was set to the Unknown Time value. For example, if <a href="#D.Device:2.Device.PeriodicStatistics.SampleSet.SampleInterval"><em>SampleInterval</em></a> is 3600 (an hour) and if <em>TimeReference</em> is set to UTC midnight on some day (in the past, present, or future) then sample intervals will complete on each UTC hour (00:00, 01:00, 02:00 etc). If, in addition, <a href="#D.Device:2.Device.PeriodicStatistics.SampleSet.FetchSamples"><em>FetchSamples</em></a> is 24, then the fetch interval is 86400 (a day) and <a href="#D.Device:2.Device.PeriodicStatistics.SampleSet.Status"><em>Status</em></a> <a href="#D.Device:2.Device.PeriodicStatistics.SampleSet.Status.Enabled"><em>Enabled</em></a> to <a href="#D.Device:2.Device.PeriodicStatistics.SampleSet.Status.Trigger"><em>Trigger</em></a> to <a href="#D.Device:2.Device.PeriodicStatistics.SampleSet.Status.Enabled"><em>Enabled</em></a> transitions will occur every day at UTC midnight. Note that, if <em>TimeReference</em> is set to a time other than the Unknown Time, the first sample interval (which has to begin immediately) will almost certainly be shorter than <a href="#D.Device:2.Device.PeriodicStatistics.SampleSet.SampleInterval"><em>SampleInterval</em></a>). This is why <em>TimeReference</em> is defined in terms of when sample intervals complete rather than start.</td>
<td>0001-01-01T00:00:00Z</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.PeriodicStatistics.SampleSet.FetchSamples">FetchSamples</span></td>
<td>unsignedInt</td>
<td>W</td>
<td>The number of sample intervals to be collected before transitioning <a href="#D.Device:2.Device.PeriodicStatistics.SampleSet.Status"><em>Status</em></a> from <a href="#D.Device:2.Device.PeriodicStatistics.SampleSet.Status.Enabled"><em>Enabled</em></a> to <a href="#D.Device:2.Device.PeriodicStatistics.SampleSet.Status.Trigger"><em>Trigger</em></a> to <a href="#D.Device:2.Device.PeriodicStatistics.SampleSet.Status.Enabled"><em>Enabled</em></a>. If this SampleSet is enabled and <em>FetchSamples</em> is in the range [1:<a href="#D.Device:2.Device.PeriodicStatistics.SampleSet.ReportSamples"><em>ReportSamples</em></a>] then <a href="#D.Device:2.Device.PeriodicStatistics.SampleSet.Status"><em>Status</em></a> MUST transition from <a href="#D.Device:2.Device.PeriodicStatistics.SampleSet.Status.Enabled"><em>Enabled</em></a> to <a href="#D.Device:2.Device.PeriodicStatistics.SampleSet.Status.Trigger"><em>Trigger</em></a> to <a href="#D.Device:2.Device.PeriodicStatistics.SampleSet.Status.Enabled"><em>Enabled</em></a> on completion of every <em>FetchSamples</em> sample intervals. Otherwise, the transition MUST NOT occur. For example, if <a href="#D.Device:2.Device.PeriodicStatistics.SampleSet.ReportSamples"><em>ReportSamples</em></a> is 25 and <em>FetchSamples</em> is 24, then the CPE will store 25 values for each monitored parameter and the above <a href="#D.Device:2.Device.PeriodicStatistics.SampleSet.Status"><em>Status</em></a> transition will occur as the CPE stores each 24th of 25 sample intervals, which means that the <span class="removed">ACS</span><span class="inserted">Controller</span> could delay for up to two sample intervals before reading the stored values and would still not miss any samples (see also <a href="#D.Device:2.Device.PeriodicStatistics.SampleSet.ForceSample"><em>ForceSample</em></a>). To disable this trigger mechanism and still collect sampled statistics, <em>FetchSamples</em> can be set to either 0 or a value greater than <a href="#D.Device:2.Device.PeriodicStatistics.SampleSet.ReportSamples"><em>ReportSamples</em></a>.</td>
<td>0</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.PeriodicStatistics.SampleSet.ParameterNumberOfEntries">ParameterNumberOfEntries</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>The number of entries in the <a href="#D.Device:2.Device.PeriodicStatistics.SampleSet.Parameter."><em>Parameter</em></a> table.

<div class="diffs"><p><strong>Changes in 2.13:</strong></p>

<ul>
<li>Removed <em>unsignedInt</em> syntax <em>0</em> default</li></ul></div></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.PeriodicStatistics.SampleSet.Parameter.">Device.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>Periodic statistics parameter table for this sample set. This table contains entries for parameters whose values are to be sampled.
Note that the comma-separated lists in this object (SampleSeconds, SuspectData and Values) only ever change (a) when first enabled, (b) when ForceSample is set to true (a &ldquo;sneak preview&rdquo; of the current sample), or (c) at the end of the sample interval.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.PeriodicStatistics.SampleSet.Parameter.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.PeriodicStatistics.SampleSet.Parameter.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.
At most one enabled entry in this table can exist with a given value for <a href="#D.Device:2.Device.PeriodicStatistics.SampleSet.Parameter.Reference"><em>Reference</em></a>.</p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.PeriodicStatistics.SampleSet.Parameter.Failures">Failures</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>Counts the number of times (since this object instance was last enabled) that a newly-calculated sample value (accounting for <a href="#D.Device:2.Device.PeriodicStatistics.SampleSet.Parameter.SampleMode"><em>SampleMode</em></a>) transitioned from the &ldquo;in range&rdquo; state to the &ldquo;out of range&rdquo; state, or between the &ldquo;out of range (low)&rdquo; and &ldquo;out of range (high)&rdquo; states. The states are defined as follows: * &ldquo;in range&rdquo; : current value is greater than <a href="#D.Device:2.Device.PeriodicStatistics.SampleSet.Parameter.LowThreshold"><em>LowThreshold</em></a> and less than <a href="#D.Device:2.Device.PeriodicStatistics.SampleSet.Parameter.HighThreshold"><em>HighThreshold</em></a>. * &ldquo;out of range&rdquo; : current value is less than or equal to <a href="#D.Device:2.Device.PeriodicStatistics.SampleSet.Parameter.LowThreshold"><em>LowThreshold</em></a>, or greater than or equal to <a href="#D.Device:2.Device.PeriodicStatistics.SampleSet.Parameter.HighThreshold"><em>HighThreshold</em></a>. * &ldquo;out of range (low)&rdquo; : current value is less than or equal to <a href="#D.Device:2.Device.PeriodicStatistics.SampleSet.Parameter.LowThreshold"><em>LowThreshold</em></a>. * &ldquo;out of range (high)&rdquo; : current value is greater than or equal to <a href="#D.Device:2.Device.PeriodicStatistics.SampleSet.Parameter.HighThreshold"><em>HighThreshold</em></a>. Note that, if <a href="#D.Device:2.Device.PeriodicStatistics.SampleSet.Parameter.LowThreshold"><em>LowThreshold</em></a> and <a href="#D.Device:2.Device.PeriodicStatistics.SampleSet.Parameter.HighThreshold"><em>HighThreshold</em></a> are both the same, the threshold/failure mechanism is disabled, so the value of this parameter will not increment. This parameter can be incremented at any time during a sample interval, and might be incremented more than once during a single sample interval. For this reason, the CPE SHOULD place a locally specified limit on the frequency at which it will notify the <span class="removed">ACS</span><span class="inserted">Controller</span> of such <span class="removed">changes, as described in [<a href="#R.TR-069a2">Section 3.2.1/TR-069a2</a>].</span><span class="inserted">changes.</span> Parameters of non-numeric types cannot support the threshold/failure mechanism. The value of this parameter MUST be ignored for such parameters.</td>
<td>0</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.FaultMgmt.">Device.FaultMgmt.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object contains parameters relating to Fault/Alarm Management.</td>
<td>-</td>
<td>2.4</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.FaultMgmt.CurrentAlarm.">Device.FaultMgmt.CurrentAlarm.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>Contains all currently active alarms (whose <a href="#D.Device:2.Device.FaultMgmt.SupportedAlarm.PerceivedSeverity"><em>FaultMgmt.SupportedAlarm.{i}.PerceivedSeverity</em></a> is not <a href="#D.Device:2.Device.FaultMgmt.SupportedAlarm.PerceivedSeverity.Cleared"><em>Cleared</em></a>). Newly raised alarms result in a new entry in this table being added, any changes to the alarm as a result of an update event are updated in the existing table entry, and a clear event raised against an alarm results in the alarm being removed from this table. If maximum entries as indicated by <a href="#D.Device:2.Device.FaultMgmt.MaxCurrentAlarmEntries"><em>FaultMgmt.MaxCurrentAlarmEntries</em></a> is reached, the next event overrides the object with the oldest <a href="#D.Device:2.Device.FaultMgmt.CurrentAlarm.AlarmChangedTime"><em>AlarmChangedTime</em></a>. When a new alarm replaces an existing alarm, then all parameter values for that instance are considered as changed for the purposes of value change notifications to the <span class="removed">ACS</span><span class="inserted">Controller</span> (even if their new values are identical to those of the prior alarm).</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.FaultMgmt.CurrentAlarm.AlarmIdentifier"><em>AlarmIdentifier</em></a>, or with the same values for all of <a href="#D.Device:2.Device.FaultMgmt.CurrentAlarm.EventType"><em>EventType</em></a>, <a href="#D.Device:2.Device.FaultMgmt.CurrentAlarm.ProbableCause"><em>ProbableCause</em></a> and <a href="#D.Device:2.Device.FaultMgmt.CurrentAlarm.SpecificProblem"><em>SpecificProblem</em></a>.</p></td>
<td>-</td>
<td>2.4</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.FaultMgmt.ExpeditedEvent.">Device.FaultMgmt.ExpeditedEvent.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>Alarm events added or updated in <a href="#D.Device:2.Device.FaultMgmt.CurrentAlarm."><em>FaultMgmt.CurrentAlarm.{i}.</em></a> are simultaneously entered into the this table if their corresponding entry in <a href="#D.Device:2.Device.FaultMgmt.SupportedAlarm."><em>FaultMgmt.SupportedAlarm.{i}.</em></a> has <a href="#D.Device:2.Device.FaultMgmt.SupportedAlarm.ReportingMechanism"><em>FaultMgmt.SupportedAlarm.{i}.ReportingMechanism</em></a> set to <a href="#D.Device:2.Device.FaultMgmt.SupportedAlarm.ReportingMechanism.0Expedited"><em>0 Expedited</em></a>. This table also contains alarm clearing events. This object has a fixed number of entries with instance numbers from 1 to <a href="#D.Device:2.Device.FaultMgmt.ExpeditedEventNumberOfEntries"><em>FaultMgmt.ExpeditedEventNumberOfEntries</em></a>. Initially the table starts with all instances having <a href="#D.Device:2.Device.FaultMgmt.ExpeditedEvent.EventTime"><em>EventTime</em></a> set to the Unknown Time value, as defined in <strong>{{bibref: non-existent <span class="inserted">TR-106</span>}}</strong>. If maximum instance number <a href="#D.Device:2.Device.FaultMgmt.ExpeditedEventNumberOfEntries"><em>FaultMgmt.ExpeditedEventNumberOfEntries</em></a> is reached, the next event overrides the object with instance number 1. Subsequent entries override objects at sequentially increasing instance numbers. This logic provides for automatic &ldquo;rolling&rdquo; of records. When a new alarm replaces an existing alarm, then all parameter values for that instance are considered as changed for the purposes of value change notifications to the <span class="removed">ACS</span><span class="inserted">Controller</span> (even if their new values are identical to those of the prior alarm).</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.FaultMgmt.ExpeditedEvent.AlarmIdentifier"><em>AlarmIdentifier</em></a>.</p></td>
<td>-</td>
<td>2.4</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.FaultMgmt.ExpeditedEvent.EventTime">EventTime</span></td>
<td>dateTime</td>
<td>R</td>
<td>Indicates the date and time when the alarm event occurs. For an unpopulated entry, the value is the Unknown Time as defined in <strong>{{bibref: non-existent <span class="inserted">TR-106</span>}}</strong>.</td>
<td>-</td>
<td>2.4</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.FaultMgmt.QueuedEvent.">Device.FaultMgmt.QueuedEvent.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>Alarm events added or updated in <a href="#D.Device:2.Device.FaultMgmt.CurrentAlarm."><em>FaultMgmt.CurrentAlarm.{i}.</em></a> are simultaneously entered into the this table if their corresponding entry in <a href="#D.Device:2.Device.FaultMgmt.SupportedAlarm."><em>FaultMgmt.SupportedAlarm.{i}.</em></a> has <a href="#D.Device:2.Device.FaultMgmt.SupportedAlarm.ReportingMechanism"><em>FaultMgmt.SupportedAlarm.{i}.ReportingMechanism</em></a> set to <a href="#D.Device:2.Device.FaultMgmt.SupportedAlarm.ReportingMechanism.1Queued"><em>1 Queued</em></a>. This table also contains alarm clearing events. This object has a fixed number of entries with instance numbers from 1 to <a href="#D.Device:2.Device.FaultMgmt.QueuedEventNumberOfEntries"><em>FaultMgmt.QueuedEventNumberOfEntries</em></a>. Initially the table starts with all instances having <a href="#D.Device:2.Device.FaultMgmt.QueuedEvent.EventTime"><em>EventTime</em></a> set to the Unknown Time value, as defined in <strong>{{bibref: non-existent <span class="inserted">TR-106</span>}}</strong>. If maximum instance number <a href="#D.Device:2.Device.FaultMgmt.QueuedEventNumberOfEntries"><em>FaultMgmt.QueuedEventNumberOfEntries</em></a> is reached, the next event overrides the object with instance number 1. Subsequent entries override objects at sequentially increasing instance numbers. This logic provides for automatic &ldquo;rolling&rdquo; of records. When a new alarm replaces an existing alarm, then all parameter values for that instance are considered as changed for the purposes of value change notifications to the <span class="removed">ACS</span><span class="inserted">Controller</span> (even if their new values are identical to those of the prior alarm).</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.FaultMgmt.QueuedEvent.AlarmIdentifier"><em>AlarmIdentifier</em></a>.</p></td>
<td>-</td>
<td>2.4</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.FaultMgmt.QueuedEvent.EventTime">EventTime</span></td>
<td>dateTime</td>
<td>R</td>
<td>Indicates the date and time when the alarm event occurs. For an unpopulated entry, the value is the Unknown Time as defined in <strong>{{bibref: non-existent <span class="inserted">TR-106</span>}}</strong>.</td>
<td>-</td>
<td>2.4</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.FAP.">Device.FAP.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object is the container for all Femto related component objects, to prevent pollution of the so-called global namespace of the BBF with FAP specific objects.</td>
<td>-</td>
<td>2.4</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.FAP.GPS.">Device.FAP.GPS.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object contains the parameters relating to the GPS scan.</td>
<td>-</td>
<td>2.4</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.FAP.GPS.PeriodicTime">PeriodicTime</span></td>
<td>dateTime</td>
<td>W</td>
<td>An absolute time reference in UTC to determine when the CPE will initiate the periodic GPS scan. Each GPS scan MUST occur at (or as soon as possible after) this reference time plus or minus an integer multiple of the <a href="#D.Device:2.Device.FAP.GPS.PeriodicInterval"><em>PeriodicInterval</em></a>. <em>PeriodicTime</em> is used only to set the &ldquo;phase&rdquo; of the GPS scan. The actual value of <em>PeriodicTime</em> can be arbitrarily far into the past or future. For example, if <a href="#D.Device:2.Device.FAP.GPS.PeriodicInterval"><em>PeriodicInterval</em></a> is 86400 (a day) and if <em>PeriodicTime</em> is set to UTC midnight on some day (in the past, present, or future) then periodic GPS scans will occur every day at UTC midnight. These MUST begin on the very next midnight, even if <em>PeriodicTime</em> refers to a day in the future. The Unknown Time value defined in <strong>{{bibref: non-existent <span class="inserted">TR-106</span>}}</strong> indicates that no particular time reference is specified. That is, the CPE MAY locally choose the time reference, and needs only to adhere to the specified PeriodicInformInterval. If absolute time is not available to the CPE, its periodic GPS scan behavior MUST be the same as if <em>PeriodicTime</em> parameter was set to the Unknown Time value.</td>
<td>-</td>
<td>2.4</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.FAP.GPS.LastSuccessfulScanTime">LastSuccessfulScanTime</span></td>
<td>dateTime</td>
<td>R</td>
<td><p>Specifies the date and time, when the GPS scan last completed successfully. This value is retained across reboot and is only reset after another scan completes successfully or <a href="#D.Device:2.Device.FAP.GPS.GPSReset"><em>GPSReset</em></a> is set to <em>true</em>. The values for <a href="#D.Device:2.Device.FAP.GPS.LockedLatitude"><em>LockedLatitude</em></a>, <a href="#D.Device:2.Device.FAP.GPS.LockedLongitude"><em>LockedLongitude</em></a> and <a href="#D.Device:2.Device.FAP.GPS.NumberOfSatellites"><em>NumberOfSatellites</em></a> correspond to this time. If a scan has never succeeded before, the value will be the Unknown Time value, as defined in <strong>{{bibref: non-existent <span class="inserted">TR-106</span>}}</strong>.</p>

<p>Active Notification requests for this parameter MAY be denied.</p></td>
<td>-</td>
<td>2.4</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.FAP.GPS.ContinuousGPSStatus.">Device.FAP.GPS.ContinuousGPSStatus.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>When <a href="#D.Device:2.Device.FAP.GPS.ContinuousGPS"><em>ContinuousGPS</em></a> is <em>true</em>, the parameters in this object contain the GPS status as it is continuously monitored.
When <a href="#D.Device:2.Device.FAP.GPS.ContinuousGPS"><em>ContinuousGPS</em></a> is <em>false</em>, the parameters in this object are not being updated and their values are not accurate.</td>
<td>-</td>
<td>2.4</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.FAP.GPS.ContinuousGPSStatus.LastFixTime">LastFixTime</span></td>
<td>dateTime</td>
<td>R</td>
<td><p>Represents the date and time when the last GPS Fix was acquired. The Unknown Time value defined in <strong>{{bibref: non-existent <span class="inserted">TR-106</span>}}</strong> is used when <a href="#D.Device:2.Device.FAP.GPS.ContinuousGPSStatus.GotFix"><em>GotFix</em></a> is <em>false</em>. This applies too after a reboot of the device until a valid location is determined and <a href="#D.Device:2.Device.FAP.GPS.ContinuousGPSStatus.GotFix"><em>GotFix</em></a> transsitions to <em>true</em>.</p>

<p>Active Notification requests for this parameter MAY be denied.</p></td>
<td>-</td>
<td>2.4</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.FAP.PerfMgmt.">Device.FAP.PerfMgmt.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object contains parameters relating to Performance Management in a Femto-related environment.</td>
<td>-</td>
<td>2.4</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.FAP.PerfMgmt.Config.">Device.FAP.PerfMgmt.Config.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>This object contains parameters relating to File Management configuration for uploading of Performance Files to a designated File Server. Each table entry can be referenced by zero or more radio-specific objects contained in the FAPService instances. The periodic upload will upload data for all of the radio-specific objects that reference it.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.FAP.PerfMgmt.Config.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.FAP.PerfMgmt.Config.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.
At most one enabled entry in this table can exist with the same values for all of <a href="#D.Device:2.Device.FAP.PerfMgmt.Config.URL"><em>URL</em></a>, <a href="#D.Device:2.Device.FAP.PerfMgmt.Config.PeriodicUploadInterval"><em>PeriodicUploadInterval</em></a> and <a href="#D.Device:2.Device.FAP.PerfMgmt.Config.PeriodicUploadTime"><em>PeriodicUploadTime</em></a>.</p></td>
<td>-</td>
<td>2.4</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.FAP.PerfMgmt.Config.PeriodicUploadTime">PeriodicUploadTime</span></td>
<td>dateTime</td>
<td>W</td>
<td>An absolute time reference in UTC to determine when the device will initiate the periodic file upload. Each file upload MUST occur at this reference time plus or minus an integer multiple of the <a href="#D.Device:2.Device.FAP.PerfMgmt.Config.PeriodicUploadInterval"><em>PeriodicUploadInterval</em></a>. <em>PeriodicUploadTime</em> is used only to set the &ldquo;phase&rdquo; of the periodic uploads. The actual value of <em>PeriodicUploadTime</em> can be arbitrarily far into the past or future. For example, if <a href="#D.Device:2.Device.FAP.PerfMgmt.Config.PeriodicUploadInterval"><em>PeriodicUploadInterval</em></a> is 86400 (a day) and if <em>PeriodicUploadTime</em> is set to UTC midnight on some day (in the past, present, or future) then periodic file uploads will occur every day at UTC midnight. These MUST begin on the very next midnight, even if <em>PeriodicUploadTime</em> refers to a day in the future. The Unknown Time value as defined in <strong>{{bibref: non-existent <span class="inserted">TR-106</span>}}</strong> indicates that no particular time reference is specified. That is, the device MAY locally choose the time reference, and is REQUIRED only to adhere to the specified <a href="#D.Device:2.Device.FAP.PerfMgmt.Config.PeriodicUploadInterval"><em>PeriodicUploadInterval</em></a>. If absolute time is not available to the device, its periodic file upload behavior MUST be the same as if the <em>PeriodicUploadTime</em> parameter was set to the Unknown Time value.</td>
<td>-</td>
<td>2.4</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.FAP.ApplicationPlatform.">Device.FAP.ApplicationPlatform.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object defines the data model for the following Femtozone APIs.

<ul>
<li>Femto Awareness</li>
<li>SMS</li>
<li>MMS</li>
<li>Terminal Location
Femto Awareness, SMS, MMS, and Terminal Location APIs are defined in the Release 1 API Specifications of the Service SIG in the Femto Forum (non public document).
[<a href="#R.TR-262">Appendix I/TR-262</a>] provides the &ldquo;Theory of Operation&rdquo; for the usage of this object.</li></ul></td>
<td>-</td>
<td>2.4</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.FAP.ApplicationPlatform.Control.">Device.FAP.ApplicationPlatform.Control.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object contains parameters related to the operation of the Femtozone APIs.</td>
<td>-</td>
<td>2.4</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.FAP.ApplicationPlatform.Control.TunnelInst">TunnelInst</span></td>
<td>string(:256)</td>
<td>W</td>
<td>This is the reference to the IPsec tunnel instance to be used by the Application Platform traffic. <span class="removed">If InternetGatewayDevice:1 [<a href="#R.TR-098">TR-098</a>] or Device:1 [<a href="#R.TR-181i1">TR-181i1</a>]) is used as root data model the</span><span class="inserted">The</span> <em>TunnelInst</em> MUST point to a <span class="removed">row in the <em>.FAP.Tunnel.IKESA.{i}.</em> table. If the root data model used is Device:2 [<a href="#R.TR-181i2">TR-181i2</a>] than the <em>TunnelInst</em> MUST point to an </span>tunnel instance defined in <span class="removed">this</span><span class="inserted">the</span> data model. If the referenced object is deleted, the parameter value MUST be set to an empty string.</td>
<td>-</td>
<td>2.4</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.BulkData.">Device.BulkData.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object provides bulk data collection capabilities and global collection settings that affect the entire device. Bulk Data utilizes various solutions (e.g., IPDR, HTTP) to collect data from devices and transfer the data to a collection server. The IPDR solution is based on a service specification described in [<a href="#R.TR-232">TR-232</a>]. The HTTP solution is based on transfer mechanisms described in <span class="removed">[<a href="#R.TR-157a10">Annex A/TR-157a10</a>]</span><span class="inserted">[<a href="#R.TR-069">Annex N/TR-069</a>]</span>. The Bulk Data Collection Profiles are measured over a reporting interval (which can be aligned with absolute time) and are made available to the collection server.</td>
<td>-</td>
<td>2.5</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.BulkData.MaxNumberOfProfiles">MaxNumberOfProfiles</span></td>
<td>int(-1:)</td>
<td>R</td>
<td>The maximum number of profiles that can exist at any given time. Specifically, the maximum number of <a href="#D.Device:2.Device.BulkData.Profile."><em>Profile.{i}.</em></a> instances that the <span class="removed">ACS</span><span class="inserted">Controller</span> can create. If the value of this parameter is -1, then it means that the CPE doesn’t have a limit to the number of profiles that can exist.</td>
<td>-</td>
<td>2.5</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.BulkData.Profile.">Device.BulkData.Profile.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>A set of Bulk Data Collection profiles. Each profile represents a bulk data report, including its own timing configuration, communications configuration, and set of parameters. This allows the <span class="removed">ACS</span><span class="inserted">Controller</span> to configure multiple reports to be generated at different times for different sets of data.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.BulkData.Profile.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.BulkData.Profile.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.</p></td>
<td>-</td>
<td>2.5</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.BulkData.Profile.TimeReference">TimeReference</span></td>
<td>dateTime</td>
<td>W</td>
<td>An absolute time reference in UTC to determine when will be transmitted. Each reporting interval MUST complete at this reference time plus or minus an integer multiple of <a href="#D.Device:2.Device.BulkData.Profile.ReportingInterval"><em>ReportingInterval</em></a>, unless unable to due to higher prioritized operations. <em>TimeReference</em> is used only to set the &ldquo;phase&rdquo; of the reporting intervals. The actual value of <em>TimeReference</em> can be arbitrarily far into the past or future. If <em>TimeReference</em> is changed while collection of bulk data is enabled, the first reporting interval begins immediately. The Unknown Time value as defined in <strong>{{bibref: non-existent <span class="inserted">TR-106</span>}}</strong> indicates that no particular time reference is specified. That is, the CPE MAY locally choose the time reference, and is required only to adhere to the specified reporting intervals. If absolute time is not available to the CPE, its reporting interval behavior MUST be the same as if the <em>TimeReference</em> parameter was set to the Unknown Time value. For example, if <a href="#D.Device:2.Device.BulkData.Profile.ReportingInterval"><em>ReportingInterval</em></a> is 86400 (a day) and if <em>TimeReference</em> is set to UTC midnight on some day (in the past, present, or future) then the CPE will generate (and transmit, if in a &ldquo;ITPush&rdquo; mode) its report at midnight every 24 hours. Note that, if <em>TimeReference</em> is set to a time other than the Unknown Time, the first reporting interval (which has to begin immediately) will almost certainly be shorter than <a href="#D.Device:2.Device.BulkData.Profile.ReportingInterval"><em>ReportingInterval</em></a>). This is why <em>TimeReference</em> is defined in terms of when reporting intervals complete rather than start.</td>
<td>0001-01-01T00:00:00Z</td>
<td>2.5</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.BulkData.Profile.StreamingSessionID">StreamingSessionID</span></td>
<td>unsignedInt(48:57,65:90)</td>
<td>W</td>
<td>This is the unique identification of an IPDR Session to be used when this collection profile is configured for the IPDR Streaming Protocol [<a href="#R.IPDR-SP">IPDR-SP</a>] (the <a href="#D.Device:2.Device.BulkData.Profile.Protocol"><em>Protocol</em></a> parameter has a value of <a href="#D.Device:2.Device.BulkData.Protocols.Streaming"><em>Streaming</em></a>). <span class="removed">An</span><span class="inserted">A</span> <span class="removed">ACS</span><span class="inserted">Controller</span> MUST NOT configure multiple IPDR Streaming Protocol collection profiles with the same <em>StreamingSessionID</em>. Doing so MUST cause the CPE to fail the SetParameterValues. Within the IPDR Streaming Protocol specification the Session ID has a type of a single &lsquo;char&rsquo;, but we are restricting the range even further (ASCII values of &lsquo;0&rsquo; - &lsquo;9&rsquo; and &lsquo;A&rsquo; - &lsquo;Z&rsquo;.</td>
<td>-</td>
<td>2.5</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.BulkData.Profile.Parameter.">Device.BulkData.Profile.{i}.Parameter.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td>Bulk data parameter table.
Each entry in this table represents a parameter (or set of parameters if a partial path is provided) to be collected and reported.</td>
<td>-</td>
<td>2.5</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.BulkData.Profile.Parameter.Name">Name</span></td>
<td>string(:64)</td>
<td>W</td>
<td>Name of the parameter in the report body. If the value of this parameter is an empty string, then the value of the <a href="#D.Device:2.Device.BulkData.Profile.Parameter.Reference"><em>Reference</em></a> parameter is used as the name. When the value <a href="#D.Device:2.Device.BulkData.Profile.Parameter.Reference"><em>Reference</em></a> parameter contains wildcards and/or partial parameter names, the rules for determining the value of this parameter are specified in <span class="removed">[<a href="#R.TR-157a10">Annex A.3.2.1/TR-157a10</a>].</span><span class="inserted">[<a href="#R.TR-069">Annex N/TR-069</a>]</span></td>
<td>-</td>
<td>2.10</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.BulkData.Profile.CSVEncoding.">Device.BulkData.Profile.{i}.CSVEncoding.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object defines the properties to be used when the <a href="#D.Device:2.Device.BulkData.Profile."><em>Profile</em></a> object’s <a href="#D.Device:2.Device.BulkData.Profile.EncodingType"><em>EncodingType</em></a> parameter value is <a href="#D.Device:2.Device.BulkData.EncodingTypes.CSV"><em>CSV</em></a>.</td>
<td>-</td>
<td>2.10</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.BulkData.Profile.CSVEncoding.ReportFormat">ReportFormat</span></td>
<td>string</td>
<td>W</td>
<td><p>This parameter describes the formatting used for reports defined by this profile as described in <span class="removed">[<a href="#R.TR-157a10">Annex A.3.4/TR-157a10</a>]</span><span class="inserted">[<a href="#R.TR-069">Annex N.3.4/TR-069</a>]</span>. Note: This parameter is encoded as a token in the BBF-Report-Format header field and MUST NOT include spaces or other characters excluded from token characters defined in [<a href="#R.RFC2616">RFC2616</a>].</p>

<p>Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.BulkData.Profile.CSVEncoding.ReportFormat.ParameterPerRow"><em>ParameterPerRow</em></span> (Reports are formatted with each parameter formatted as a row entry)</li>
<li><span id="D.Device:2.Device.BulkData.Profile.CSVEncoding.ReportFormat.ParameterPerColumn"><em>ParameterPerColumn</em></span> (Reports are formatted with each parameter formatted as a column entry)</li></ul></td>
<td>ParameterPerColumn</td>
<td>2.10</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.BulkData.Profile.CSVEncoding.RowTimestamp">RowTimestamp</span></td>
<td>string</td>
<td>W</td>
<td><p>The format of the timestamp to use for data inserted into the row.</p>

<p>Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.BulkData.Profile.CSVEncoding.RowTimestamp.Unix-Epoch"><em>Unix-Epoch</em></span> (Timestamp is inserted using the UNIX epoch time (milliseconds since Jan 1, 1970 UTC) timestamp format. If the CPE is unable to acquire a time, then the time that has elapsed since the last reboot of the device is used)</li>
<li><span id="D.Device:2.Device.BulkData.Profile.CSVEncoding.RowTimestamp.ISO-8601"><em>ISO-8601</em></span> (Timestamp is inserted using the ISO-8601 timestamp <span class="inserted">format. If the CPE is unable to acquire a time, then the processing described by the dateTime type in [<a href="#R.TR-069">Table 12/TR-069</a>] is followed.</span>)</li>
<li><span id="D.Device:2.Device.BulkData.Profile.CSVEncoding.RowTimestamp.None"><em>None</em></span> (Timestamp is not inserted in the row)</li></ul></td>
<td>Unix-Epoch</td>
<td>2.10</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.BulkData.Profile.JSONEncoding.">Device.BulkData.Profile.{i}.JSONEncoding.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object defines the properties to be used when the <a href="#D.Device:2.Device.BulkData.Profile."><em>Profile</em></a> object’s <a href="#D.Device:2.Device.BulkData.Profile.EncodingType"><em>EncodingType</em></a> parameter value is <a href="#D.Device:2.Device.BulkData.EncodingTypes.JSON"><em>JSON</em></a>.</td>
<td>-</td>
<td>2.10</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.BulkData.Profile.JSONEncoding.ReportFormat">ReportFormat</span></td>
<td>string</td>
<td>W</td>
<td><p>This parameter describes the formatting used for the report as described in <strong>{{bibref: non-existent <span class="inserted">TR-069</span>}}</strong>. Note: This parameter is encoded as a token in the BBF-Report-Format header field and MUST NOT include spaces or other characters excluded from token characters defined in [<a href="#R.RFC2616">RFC2616</a>].</p>

<p>Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.BulkData.Profile.JSONEncoding.ReportFormat.ObjectHierarchy"><em>ObjectHierarchy</em></span> (Reports are formatted with each object in the object hierarchy of the data model encoded as a corresponding hierarchy of JSON Objects with the parameters of the object specified as name/value pairs of the JSON Object)</li>
<li><span id="D.Device:2.Device.BulkData.Profile.JSONEncoding.ReportFormat.NameValuePair"><em>NameValuePair</em></span> (Reports are formatted with each parameter of the data model encoded as a corresponding array of JSON Objects with the parameters specified as name/value pairs)</li></ul></td>
<td>ObjectHierarchy</td>
<td>2.10</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.BulkData.Profile.JSONEncoding.ReportTimestamp">ReportTimestamp</span></td>
<td>string</td>
<td>W</td>
<td><p>The format of timestamp to use for the JSON Object named &ldquo;CollectionTime&rdquo; as described in <strong>{{bibref: non-existent <strong>{{replaced: unexpected argument Annex N.3.5.1 after: TR-157a10, TR-069}}</strong>}}</strong>.</p>

<p>Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.BulkData.Profile.JSONEncoding.ReportTimestamp.Unix-Epoch"><em>Unix-Epoch</em></span> (Timestamp is inserted using the UNIX epoch time (milliseconds since Jan 1, 1970 UTC) timestamp format. If the CPE is unable to acquire a time, then the time that has elapsed since the last reboot of the device is used)</li>
<li><span id="D.Device:2.Device.BulkData.Profile.JSONEncoding.ReportTimestamp.ISO-8601"><em>ISO-8601</em></span> (Timestamp is inserted using the ISO-8601 timestamp format. <span class="inserted">. If the CPE is unable to acquire a time, then the processing described by the dateTime type in [<a href="#R.TR-069">Table 12/TR-069</a>] is followed.</span>)</li>
<li><span id="D.Device:2.Device.BulkData.Profile.JSONEncoding.ReportTimestamp.None"><em>None</em></span> (Timestamp is not inserted)</li></ul></td>
<td>Unix-Epoch</td>
<td>2.10</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.BulkData.Profile.HTTP.">Device.BulkData.Profile.{i}.HTTP.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object defines the properties to be used when transporting bulk data using the HTTP/HTTPS protocol. This object is used when the <a href="#D.Device:2.Device.BulkData.Profile.Protocol"><em>Protocol</em></a> parameter has a value of <a href="#D.Device:2.Device.BulkData.Protocols.HTTP"><em>HTTP</em></a>. For authentication purposes the CPE MUST support HTTP Basic and Digest Access Authentication as defined in [<a href="#R.RFC2616">RFC2616</a>].</td>
<td>-</td>
<td>2.10</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.BulkData.Profile.HTTP.RetryMinimumWaitInterval">RetryMinimumWaitInterval</span></td>
<td>unsignedInt(1:65535)</td>
<td>W</td>
<td>Configures the data transfer retry wait interval, in seconds, as specified in <strong>{{bibref: non-existent <span class="inserted">TR-069</span>}}</strong>. The device MUST use a random value between <em>RetryMinimumWaitInterval</em> and (<em>RetryMinimumWaitInterval</em> * <a href="#D.Device:2.Device.BulkData.Profile.HTTP.RetryIntervalMultiplier"><em>RetryIntervalMultiplier</em></a> / 1000) as the first retry wait interval. Other values in the retry pattern MUST be calculated using this value as a starting point.</td>
<td>5</td>
<td>2.10</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.BulkData.Profile.HTTP.RetryIntervalMultiplier">RetryIntervalMultiplier</span></td>
<td>unsignedInt(1000:65535)</td>
<td>W</td>
<td>Configures the retry interval multiplier as specified in <strong>{{bibref: non-existent <span class="inserted">TR-069</span>}}</strong>. This value is expressed in units of 0.001. Hence the values of the multiplier range between 1.000 and 65.535. The device MUST use a random value between <a href="#D.Device:2.Device.BulkData.Profile.HTTP.RetryMinimumWaitInterval"><em>RetryMinimumWaitInterval</em></a> and (<a href="#D.Device:2.Device.BulkData.Profile.HTTP.RetryMinimumWaitInterval"><em>RetryMinimumWaitInterval</em></a> * <em>RetryIntervalMultiplier</em> / 1000) as the first retry wait interval. Other values in the retry pattern MUST be calculated using this value as a starting point.</td>
<td>2000</td>
<td>2.10</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.BulkData.Profile.HTTP.RequestURIParameter.">Device.BulkData.Profile.{i}.HTTP.RequestURIParameter.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td>This object represents an instance of a parameter to be used in the report header used as part of the HTTP Request-URI transmitted by the CPE to the collection server using the Request-URI in addition to the parameters required by <strong>{{bibref: non-existent <span class="inserted">TR-069</span>}}</strong>.</td>
<td>-</td>
<td>2.10</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.XMPP.">Device.XMPP.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>The <em>XMPP</em> represents the XMPP capabilities of the device<span class="removed"> as described in [<a href="#R.TR-069a5">Appendix III/TR-069a5</a>].</span><span class="inserted">, as described in [<a href="#R.TR-069">Appendix III/TR-069</a>].</span></td>
<td>-</td>
<td>2.7</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.XMPP.Connection.">Device.XMPP.Connection.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>The <em>Connection</em> represents a XMPP connection between the device and a server. The <a href="#D.Device:2.Device.XMPP.Connection.Username"><em>Username</em></a>, <a href="#D.Device:2.Device.XMPP.Connection.Domain"><em>Domain</em></a> and <a href="#D.Device:2.Device.XMPP.Connection.Resource"><em>Resource</em></a> comprise the full identity (JabberID) of this <em>Connection</em> for this device.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.XMPP.Connection.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.XMPP.Connection.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.
At most one enabled entry in this table can exist with the same values for all of <a href="#D.Device:2.Device.XMPP.Connection.Username"><em>Username</em></a>, <a href="#D.Device:2.Device.XMPP.Connection.Domain"><em>Domain</em></a> and <a href="#D.Device:2.Device.XMPP.Connection.Resource"><em>Resource</em></a>.</p></td>
<td>-</td>
<td>2.7</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.XMPP.Connection.Password">Password</span></td>
<td>string(:256)</td>
<td>W</td>
<td><p>Password used to authenticate this <a href="#D.Device:2.Device.XMPP.Connection."><em>Connection</em></a> when making a connection to the <a href="#D.Device:2.Device.XMPP.Connection.Server."><em>Server</em></a> using the procedure outlined in [<a href="#R.RFC6120">Section 6/RFC6120</a>]. Note that on a factory reset of the CPE, the value of this parameter might be reset to its factory value. If <span class="removed">an</span><span class="inserted">a</span> <span class="removed">ACS</span><span class="inserted">Controller</span> modifies the value of this parameter, it SHOULD be prepared to accommodate the situation that the original value is restored as the result of a factory reset.</p>

<p>When read, this parameter returns an empty string, regardless of the actual value.</p></td>
<td>-</td>
<td>2.7</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.XMPP.Connection.ServerRetryInitialInterval">ServerRetryInitialInterval</span></td>
<td>unsignedInt(1:65535)</td>
<td>W</td>
<td>The maximum first reconnection wait interval, in <em>seconds</em><span class="removed">, as specified in [<a href="#R.TR-069a5">Annex K XMPP Connection Request/TR-069a5</a>].</span><span class="inserted">, as specified in [<a href="#R.TR-069">Annex K XMPP Connection Request/TR-069</a>].</span> The Device MUST use a random value between <em>0</em> and <em>ServerRetryInitialInterval</em> as the first reconnection wait interval. NOTE: If the value of the <a href="#D.Device:2.Device.XMPP.Connection.ServerConnectAttempts"><em>ServerConnectAttempts</em></a> parameter is 0, the value of this parameter is ignored.</td>
<td>60</td>
<td>2.7</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.XMPP.Connection.ServerRetryIntervalMultiplier">ServerRetryIntervalMultiplier</span></td>
<td>unsignedInt(1000:65535)</td>
<td>W</td>
<td>The reconnection interval multiplier<span class="removed"> as specified in [<a href="#R.TR-069a5">Annex K XMPP Connection Request/TR-069a5</a>].</span><span class="inserted">, as specified in [<a href="#R.TR-069">Annex K XMPP Connection Request/TR-069</a>].</span> This value is expressed in units of 0.001. Hence the values of the multiplier range between 1.000 and 65.535. For the <em>n</em>th reconnection wait interval, the Device MUST use a random value, in <em>seconds</em>, between <em>0</em> and <a href="#D.Device:2.Device.XMPP.Connection.ServerRetryInitialInterval"><em>ServerRetryInitialInterval</em></a> * (<em>ServerRetryIntervalMultiplier</em> / 1000) ** (<em>n</em> - <em>1</em>). NOTE: If the value of the <a href="#D.Device:2.Device.XMPP.Connection.ServerConnectAttempts"><em>ServerConnectAttempts</em></a> parameter is 0, the value of this parameter is ignored.</td>
<td>2000</td>
<td>2.7</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.XMPP.Connection.UseTLS">UseTLS</span></td>
<td>boolean</td>
<td>W</td>
<td>This parameter allows <span class="removed">an</span><span class="inserted">a</span> <span class="removed">ACS</span><span class="inserted">Controller</span> to configure whether or not this XMPP Connection is required to use TLS independent of whether or not the XMPP Server that is being connected to is configured for TLS &ldquo;mandatory-to-negotiate&rdquo;. If the value of <em>UseTLS</em> is <em>true</em> then the CPE will initiate TLS negotiation if not required to by the XMPP Server. If the value of <em>UseTLS</em> is <em>false</em> then the CPE will not initiate TLS negotiation if not required to by the XMPP Server.</td>
<td>false</td>
<td>2.7</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.IEEE1905.">Device.IEEE1905.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object represents the management functions for the 1905 capabilities as defined in [<a href="#R.IEEE1905.1a">IEEE1905.1a</a>].</td>
<td>-</td>
<td>2.9</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.IEEE1905.AL.">Device.IEEE1905.AL.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object represents the management functions for the 1905 Abstraction Layer as defined in [<a href="#R.IEEE1905.1a">Section 4.4 Abstraction Layer/IEEE1905.1a</a>].</td>
<td>-</td>
<td>2.9</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.IEEE1905.AL.NetworkTopology.">Device.IEEE1905.AL.NetworkTopology.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object represents the 1905 Network Topology capabilities of this device.</td>
<td>-</td>
<td>2.9</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.IEEE1905.AL.NetworkTopology.Enable">Enable</span></td>
<td>boolean</td>
<td>W</td>
<td>Enables or disables the 1905 Network Topology reporting (via <span class="removed">TR-069).</span><span class="inserted">a Controller).</span> When <em>true</em>, the device clears and (re)populates the <a href="#D.Device:2.Device.IEEE1905.AL.NetworkTopology.IEEE1905Device."><em>IEEE1905Device</em></a> and <a href="#D.Device:2.Device.IEEE1905.AL.NetworkTopology.ChangeLog."><em>ChangeLog</em></a> tables. When <em>false</em>, the contents of the <a href="#D.Device:2.Device.IEEE1905.AL.NetworkTopology.IEEE1905Device."><em>IEEE1905Device</em></a> and <a href="#D.Device:2.Device.IEEE1905.AL.NetworkTopology.ChangeLog."><em>ChangeLog</em></a> tables have no meaning.</td>
<td>-</td>
<td>2.9</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.">Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>This object represents an instance of discovered 1905 Devices in the network (received Topology discovery message as defined in [<a href="#R.IEEE1905.1a">Clause 6.3.1/IEEE1905.1a</a>]).</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.IEEE1905Id"><em>IEEE1905Id</em></a>.</p>

<div class="diffs"><p><strong>Changes in 2.13:</strong></p>

<ul>
<li>Added <a href="#D.Device:2.Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.AssocWiFiNetworkDeviceRef"><em>AssocWiFiNetworkDeviceRef</em></a> parameter</li></ul></div></td>
<td>-</td>
<td>2.9</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.AssocWiFiNetworkDeviceRef">AssocWiFiNetworkDeviceRef</span></td>
<td>string</td>
<td>R</td>
<td>The value MUST be the Path Name of a row in the <a href="#D.Device:2.Device.WiFi.MultiAP.APDevice."><em>WiFi.MultiAP.APDevice.</em></a> table. If the referenced object is deleted, the parameter value MUST be set to an empty string. <em>AssocWiFiNetworkDeviceRef</em> is a reference to the Wi-Fi Network &ldquo;APDevice&rdquo;. Since IEEE 1905.1 is the protocol used by the Wi-Fi Alliance’s EasyMesh specification for communications, this parameter allows the IEEE 1905.1 portion of the data model to reference the associated EasyMesh portion of the data model.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.MQTT.">Device.MQTT.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>MQTT Base object describing all MQTT related parameters and <span class="removed">objects [<a href="#R.MQTT31">MQTT31</a>],</span><span class="inserted">objects.</span></td>
<td>-</td>
<td>2.10</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.MQTT.Capabilities.">Device.MQTT.Capabilities.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>Indicates the MQTT capabilities of the device.</td>
<td>-</td>
<td>2.10</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.MQTT.Capabilities.ProtocolVersionsSupported">ProtocolVersionsSupported</span></td>
<td>string[]</td>
<td>R</td>
<td><p>Comma-separated list of strings. Indicates the supported protocol versions. Each list item is an enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.MQTT.Capabilities.ProtocolVersionsSupported.3.1"><em>3.1</em></span> (Protocol according to [<a href="#R.MQTT31">MQTT31</a>])</li>
<li><span id="D.Device:2.Device.MQTT.Capabilities.ProtocolVersionsSupported.3.1.1"><em>3.1.1</em></span> (Protocol according to <strong>{{bibref: non-existent <span class="inserted">MQTT31</span>}}</strong>)</li>
<li><span id="D.Device:2.Device.MQTT.Capabilities.ProtocolVersionsSupported.5.0"><em>5.0</em></span> (Protocol according to [<a href="#R.MQTT50">MQTT50</a>])</li></ul>

<div class="diffs"><p><strong>Changes in 2.13:</strong></p>

<ul>
<li>Added string <em>5.0</em> enumeration</li></ul></div></td>
<td>-</td>
<td>2.10</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.MQTT.Client.">Device.MQTT.Client.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>MQTT client table. Contains a list of configured MQTT clients.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.MQTT.Client.Alias"><em>Alias</em></a>, or with a given value for <a href="#D.Device:2.Device.MQTT.Client.Name"><em>Name</em></a>. On creation of a new table entry, the Agent MUST choose initial values for <a href="#D.Device:2.Device.MQTT.Client.Alias"><em>Alias</em></a> and <a href="#D.Device:2.Device.MQTT.Client.Name"><em>Name</em></a> such that the new entry does not conflict with any existing entries.</p>

<div class="diffs"><p><strong>Changes in 2.13:</strong></p>

<ul>
<li>Added <a href="#D.Device:2.Device.MQTT.Client.CleanStart"><em>CleanStart</em></a> parameter</li>
<li>Added <a href="#D.Device:2.Device.MQTT.Client.SessionExpiryInterval"><em>SessionExpiryInterval</em></a> parameter</li>
<li>Added <a href="#D.Device:2.Device.MQTT.Client.ReceiveMaximum"><em>ReceiveMaximum</em></a> parameter</li>
<li>Added <a href="#D.Device:2.Device.MQTT.Client.MaximumPacketSize"><em>MaximumPacketSize</em></a> parameter</li>
<li>Added <a href="#D.Device:2.Device.MQTT.Client.TopicAliasMaximum"><em>TopicAliasMaximum</em></a> parameter</li>
<li>Added <a href="#D.Device:2.Device.MQTT.Client.RequestResponseInfo"><em>RequestResponseInfo</em></a> parameter</li>
<li>Added <a href="#D.Device:2.Device.MQTT.Client.RequestProblemInfo"><em>RequestProblemInfo</em></a> parameter</li>
<li>Added <a href="#D.Device:2.Device.MQTT.Client.AuthenticationMethod"><em>AuthenticationMethod</em></a> parameter</li>
<li>Added <a href="#D.Device:2.Device.MQTT.Client.WillDelayInterval"><em>WillDelayInterval</em></a> parameter</li>
<li>Added <a href="#D.Device:2.Device.MQTT.Client.WillMessageExpiryInterval"><em>WillMessageExpiryInterval</em></a> parameter</li>
<li>Added <a href="#D.Device:2.Device.MQTT.Client.WillContentType"><em>WillContentType</em></a> parameter</li>
<li>Added <a href="#D.Device:2.Device.MQTT.Client.WillResponseTopic"><em>WillResponseTopic</em></a> parameter</li>
<li>Added <a href="#D.Device:2.Device.MQTT.Client.PublishMessageExpiryInterval"><em>PublishMessageExpiryInterval</em></a> parameter</li>
<li>Added <a href="#D.Device:2.Device.MQTT.Client.ConnectRetryIntervalMultiplier"><em>ConnectRetryIntervalMultiplier</em></a> parameter</li>
<li>Added <a href="#D.Device:2.Device.MQTT.Client.ConnectRetryMaxInterval"><em>ConnectRetryMaxInterval</em></a> parameter</li>
<li>Added <a href="#D.Device:2.Device.MQTT.Client.ResponseInformation"><em>ResponseInformation</em></a> parameter</li>
<li>Added <a href="#D.Device:2.Device.MQTT.Client.UserPropertyNumberOfEntries"><em>UserPropertyNumberOfEntries</em></a> parameter</li>
<li>Added <a href="#D.Device:2.Device.MQTT.Client.UserProperty."><em>UserProperty.{i}.</em></a> object</li></ul></div></td>
<td>-</td>
<td>2.10</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.MQTT.Client.Enable">Enable</span></td>
<td>boolean</td>
<td>W</td>
<td>Allows to enable or disable the MQTT client. If a MQTT client gets enabled then the MQTT client has first to establish a MQTT broker session and then subscribe for all enabled topics in the <a href="#D.Device:2.Device.MQTT.Client.Subscription."><em>Subscription.</em></a> table. <span class="removed">In case the</span><span class="inserted">If the <a href="#D.Device:2.Device.MQTT.Client.ProtocolVersion"><em>ProtocolVersion</em></a> is set to <a href="#D.Device:2.Device.MQTT.Capabilities.ProtocolVersionsSupported.3.1"><em>3.1</em></a> or <a href="#D.Device:2.Device.MQTT.Capabilities.ProtocolVersionsSupported.3.1.1"><em>3.1.1</em></a> and</span> <a href="#D.Device:2.Device.MQTT.Client.CleanSession"><em>CleanSession</em></a> is set to <em>false</em> a subscription MUST only be sent for topics which haven’t been subscribed before (see **{{bibref: non-existent **{{replaced: unexpected argument section after: MQTT311|, MQTT31}}<strong>3.1.2.4}}</strong>). If <span class="inserted">the <a href="#D.Device:2.Device.MQTT.Client.ProtocolVersion"><em>ProtocolVersion</em></a> is set to <a href="#D.Device:2.Device.MQTT.Capabilities.ProtocolVersionsSupported.5.0"><em>5.0</em></a> and <a href="#D.Device:2.Device.MQTT.Client.CleanStart"><em>CleanStart</em></a> is set to <em>false</em> a subscription MUST only be sent for topics which haven’t been subscribed before (see [<a href="#R.MQTT50">Section 3.1.2.4/MQTT50</a>]). If </span>a connected MQTT client gets disabled (<a href="#D.Device:2.Device.MQTT.Client.Status"><em>Status</em></a> is either <a href="#D.Device:2.Device.MQTT.Client.Status.Connecting"><em>Connecting</em></a> or <a href="#D.Device:2.Device.MQTT.Client.Status.Connected"><em>Connected</em></a>) then the MQTT client has to send a MQTT DISCONNECT <span class="removed">message</span><span class="inserted">packet</span> to disconnect from the MQTT broker ([<a href="#R.MQTT31"><span class="inserted">section </span>3.14/MQTT31</a>]<span class="inserted">,[<a href="#R.MQTT31">Section 3.14/MQTT31</a>])</span> or **{{bibref: non-existent **{{replaced: unexpected argument section after: MQTT311|, MQTT50}}<strong>3.14}}</strong>), before setting the <a href="#D.Device:2.Device.MQTT.Client.Status"><em>Status</em></a> to <a href="#D.Device:2.Device.MQTT.Client.Status.Disabled"><em>Disabled</em></a>.</td>
<td>-</td>
<td>2.10</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.MQTT.Client.CleanSession">CleanSession</span></td>
<td>boolean</td>
<td>W</td>
<td>The value of the MQTT clean session flag in the MQTT CONNECT <span class="removed">message</span><span class="inserted">packet</span> (see [<a href="#R.MQTT31"><span class="inserted">section </span>3.1/MQTT31</a>] and <strong>{{bibref: non-existent <span class="inserted">MQTT31</span>}}</strong>). If this flag is set to <em>true</em> (default), the MQTT broker will delete all subscription information after a Disconnect. <span class="removed">A</span><span class="inserted">A change of this parameter is only communicated to the MQTT server with the next MQTT CONNECT packet. If the change needs to be applied immediately, the parameter <a href="#D.Device:2.Device.MQTT.Client.ForceReconnect"><em>ForceReconnect</em></a> has to be set as well.</span> <span class="removed">change of this</span><span class="inserted">This</span> parameter <span class="inserted">only applies if <a href="#D.Device:2.Device.MQTT.Client.ProtocolVersion"><em>ProtocolVersion</em></a> </span>is <span class="removed">only effective after the next MQTT CONNECT message</span><span class="inserted">set</span> to <span class="removed">the</span><span class="inserted"><a href="#D.Device:2.Device.MQTT.Capabilities.ProtocolVersionsSupported.3.1"><em>3.1</em></a></span> <span class="removed">MQTT</span><span class="inserted">or</span> <span class="removed">broker. If the change needs to be applied immediately, the parameter <a href="#D.Device:2.Device.MQTT.Client.ForceReconnect"><em>ForceReconnect</em></a> has to be set as well.</span><span class="inserted"><a href="#D.Device:2.Device.MQTT.Capabilities.ProtocolVersionsSupported.3.1.1"><em>3.1.1</em></a>.</span></td>
<td>true</td>
<td>2.10</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.MQTT.Client.CleanStart">CleanStart</span></td>
<td>boolean</td>
<td>W</td>
<td>The value of the MQTT Clean Start flag in the MQTT CONNECT packet (see [<a href="#R.MQTT50">Section 3.1.2.4/MQTT50</a>]. If this flag is set to <em>true</em> (default), the MQTT broker will delete all subscription information after a Disconnect.
A change of this parameter is only communicated to the MQTT server with the next MQTT CONNECT packet. If the change needs to be applied immediately, the parameter <a href="#D.Device:2.Device.MQTT.Client.ForceReconnect"><em>ForceReconnect</em></a> has to be set as well..
This parameter only applies if <a href="#D.Device:2.Device.MQTT.Client.ProtocolVersion"><em>ProtocolVersion</em></a> is set to <a href="#D.Device:2.Device.MQTT.Capabilities.ProtocolVersionsSupported.5.0"><em>5.0</em></a>.</td>
<td>true</td>
<td>2.13</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.MQTT.Client.WillEnable">WillEnable</span></td>
<td>boolean</td>
<td>W</td>
<td>Enables or disables the will handling (see [<a href="#R.MQTT31"><span class="inserted">section </span>3.1/MQTT31</a>]<span class="removed"> and</span><span class="inserted">,</span> <strong>{{bibref: non-existent <span class="inserted">MQTT31</span>}}</strong><span class="removed">)..</span><span class="inserted">)</span> <span class="removed">Changing</span><span class="inserted">or</span> <span class="removed">this</span><span class="inserted">[<a href="#R.MQTT50">Section/MQTT50</a>] <span class="removed">parameter while the MQTT client is connected will cause the client to disconnect and reconnect.</span><span class="inserted">3.1.2.5</span>).</span> If the connection gets enabled and this parameter is set to <em>true</em> and either the parameter <a href="#D.Device:2.Device.MQTT.Client.WillTopic"><em>WillTopic</em></a> or <a href="#D.Device:2.Device.MQTT.Client.WillValue"><em>WillValue</em></a> are an empty string, the CPE MUST set the <a href="#D.Device:2.Device.MQTT.Client.Status"><em>Status</em></a> to <a href="#D.Device:2.Device.MQTT.Client.Status.Error_Misconfigured"><em>Error_Misconfigured</em></a><span class="inserted">.</span> <span class="removed">(see [<a href="#R.MQTT311">Section 3.1.2.5/MQTT311</a>]).</span><span class="inserted">A change of this parameter is only communicated to the MQTT server with the next MQTT CONNECT packet. If the change needs to be applied immediately, the parameter <a href="#D.Device:2.Device.MQTT.Client.ForceReconnect"><em>ForceReconnect</em></a> has to be set as well..</span></td>
<td>-</td>
<td>2.10</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.MQTT.Client.WillQoS">WillQoS</span></td>
<td>unsignedInt(0:2)</td>
<td>W</td>
<td>The MQTT QoS level assigned with the will message (see [<a href="#R.MQTT31"><span class="inserted">section </span>3.1/MQTT31</a>]<span class="removed"> and</span><span class="inserted">,</span> <strong>{{bibref: non-existent <span class="inserted">MQTT31</span>}}</strong>). This parameter is only used if <a href="#D.Device:2.Device.MQTT.Client.WillEnable"><em>WillEnable</em></a> is set to <em>true</em>. <span class="removed">A change of this parameter is only communicated to the MQTT broker with the next MQTT CONNECT message. If the will handling is enabled (Paramter <a href="#D.Device:2.Device.MQTT.Client.WillEnable"><em>WillEnable</em></a> is set to <em>true</em>) and the change needs to be applied immediately, the parameter <a href="#D.Device:2.Device.MQTT.Client.ForceReconnect"><em>ForceReconnect</em></a> has to be set as well.</span><span class="inserted">A change of this parameter is only communicated to the MQTT server with the next MQTT CONNECT packet. If will handling is enabled (Parameter <a href="#D.Device:2.Device.MQTT.Client.WillEnable"><em>WillEnable</em></a> is set to <em>true</em>) and the change needs to be applied immediately, the parameter <a href="#D.Device:2.Device.MQTT.Client.ForceReconnect"><em>ForceReconnect</em></a> has to be set as well.</span></td>
<td>-</td>
<td>2.10</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.MQTT.Client.WillRetain">WillRetain</span></td>
<td>boolean</td>
<td>W</td>
<td>Indicate to the MQTT broker to retain the Will over a Disconnect (see [<a href="#R.MQTT31"><span class="inserted">section </span>3.1/MQTT31</a>]<span class="removed"> and</span><span class="inserted">,</span> <strong>{{bibref: non-existent <span class="inserted">MQTT31</span>}}</strong>). This parameter is only used if <a href="#D.Device:2.Device.MQTT.Client.WillEnable"><em>WillEnable</em></a> is set to <em>true</em>. <span class="removed">A change of this parameter is only communicated to the MQTT broker with the next MQTT CONNECT message. If the will handling is enabled (Paramter <a href="#D.Device:2.Device.MQTT.Client.WillEnable"><em>WillEnable</em></a> is set to <em>true</em>) and the change needs to be applied immediately, the parameter <a href="#D.Device:2.Device.MQTT.Client.ForceReconnect"><em>ForceReconnect</em></a> has to be set as well.</span><span class="inserted">A change of this parameter is only communicated to the MQTT server with the next MQTT CONNECT packet. If will handling is enabled (Parameter <a href="#D.Device:2.Device.MQTT.Client.WillEnable"><em>WillEnable</em></a> is set to <em>true</em>) and the change needs to be applied immediately, the parameter <a href="#D.Device:2.Device.MQTT.Client.ForceReconnect"><em>ForceReconnect</em></a> has to be set as well.</span></td>
<td>-</td>
<td>2.10</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.MQTT.Client.KeepAliveTime">KeepAliveTime</span></td>
<td>unsignedInt(:65535)</td>
<td>W</td>
<td>Keep Alive Time in <em>seconds</em> defines the maximum wait time after which a <span class="removed">message</span><span class="inserted">packet</span> has to be sent to the MQTT broker (see [<a href="#R.MQTT31"><span class="inserted">section </span>3.1/MQTT31</a>]<span class="removed"> and</span><span class="inserted">,</span> <strong>{{bibref: non-existent <span class="inserted">MQTT31</span>}}</strong>). If no regular <span class="removed">messages</span><span class="inserted">packet</span> can be sent a MQTT PINGREQ<span class="inserted"> packet</span> is sent. A value of zero (0) means no keep alive <span class="removed">message</span><span class="inserted">packets</span> are sent and the MQTT client is not disconnected by the server. <span class="removed">A change of this parameter is only effective after the next MQTT CONNECT message to the MQTT broker. If the change needs to be applied immediately, the parameter <a href="#D.Device:2.Device.MQTT.Client.ForceReconnect"><em>ForceReconnect</em></a> has to be set as well.</span><span class="inserted">A change of this parameter is only communicated to the MQTT server with the next MQTT CONNECT packet. If the change needs to be applied immediately, the parameter <a href="#D.Device:2.Device.MQTT.Client.ForceReconnect"><em>ForceReconnect</em></a> has to be set as well.</span></td>
<td>60</td>
<td>2.10</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.MQTT.Client.SessionExpiryInterval">SessionExpiryInterval</span></td>
<td>unsignedInt</td>
<td>W</td>
<td>Session expiry interval in <em>seconds</em> defines the wait time before a session expires after the connection has been closed by the MQTT client [<a href="#R.MQTT50">Section 3.1.2.11.2/MQTT50</a>]).
This parameter only applies if <a href="#D.Device:2.Device.MQTT.Client.ProtocolVersion"><em>ProtocolVersion</em></a> is set to <a href="#D.Device:2.Device.MQTT.Capabilities.ProtocolVersionsSupported.5.0"><em>5.0</em></a>.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.MQTT.Client.ReceiveMaximum">ReceiveMaximum</span></td>
<td>unsignedInt</td>
<td>W</td>
<td>The MQTT client uses this value to limit the number of QoS 1 and QoS 2 publications that it is willing to process concurrently (see [<a href="#R.MQTT50">Section 3.1.2.11.3/MQTT50</a>]).
A change of this parameter is only communicated to the MQTT server with the next MQTT CONNECT packet. If the change needs to be applied immediately, the parameter <a href="#D.Device:2.Device.MQTT.Client.ForceReconnect"><em>ForceReconnect</em></a> has to be set as well.
This parameter only applies if <a href="#D.Device:2.Device.MQTT.Client.ProtocolVersion"><em>ProtocolVersion</em></a> is set to <a href="#D.Device:2.Device.MQTT.Capabilities.ProtocolVersionsSupported.5.0"><em>5.0</em></a>.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.MQTT.Client.MaximumPacketSize">MaximumPacketSize</span></td>
<td>unsignedInt</td>
<td>W</td>
<td>The maximum packet size in <em>byte</em> the MQTT client can and will accept from the MQTT broker. A value of 0 means no limit. If the value is set to another value, the MQTT client will inform the broker in the next CONNECT packet [<a href="#R.MQTT50">Section 3.1.2.11.4/MQTT50</a>]).
A change of this parameter is only communicated to the MQTT server with the next MQTT CONNECT packet. If the change needs to be applied immediately, the parameter <a href="#D.Device:2.Device.MQTT.Client.ForceReconnect"><em>ForceReconnect</em></a> has to be set as well.
This parameter only applies if <a href="#D.Device:2.Device.MQTT.Client.ProtocolVersion"><em>ProtocolVersion</em></a> is set to <a href="#D.Device:2.Device.MQTT.Capabilities.ProtocolVersionsSupported.5.0"><em>5.0</em></a>.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.MQTT.Client.TopicAliasMaximum">TopicAliasMaximum</span></td>
<td>unsignedInt(:65535)</td>
<td>W</td>
<td>This value indicates the highest value that the MQTT client will accept as a Topic Alias sent by the Server (see [<a href="#R.MQTT50">Section 3.1.2.11.5/MQTT50</a>]). The MQTT client uses this value to limit the number of Topic Aliases that it is willing to hold on this connection.
A value of 0 indicates that Topic Alias is not supported.
A change of this parameter is only communicated to the MQTT server with the next MQTT CONNECT packet. If the change needs to be applied immediately, the parameter <a href="#D.Device:2.Device.MQTT.Client.ForceReconnect"><em>ForceReconnect</em></a> has to be set as well.
This parameter only applies if <a href="#D.Device:2.Device.MQTT.Client.ProtocolVersion"><em>ProtocolVersion</em></a> is set to <a href="#D.Device:2.Device.MQTT.Capabilities.ProtocolVersionsSupported.5.0"><em>5.0</em></a>.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.MQTT.Client.RequestResponseInfo">RequestResponseInfo</span></td>
<td>boolean</td>
<td>W</td>
<td>The MQTT client uses this value in a MQTT CONNECT packet to request the Server to return Response Information in the MQTT CONNACK (see [<a href="#R.MQTT50">Section 3.1.2.11.6/MQTT50</a>]).
A change of this parameter is only communicated to the MQTT server with the next MQTT CONNECT packet. If the change needs to be applied immediately, the parameter <a href="#D.Device:2.Device.MQTT.Client.ForceReconnect"><em>ForceReconnect</em></a> has to be set as well.
This parameter only applies if <a href="#D.Device:2.Device.MQTT.Client.ProtocolVersion"><em>ProtocolVersion</em></a> is set to <a href="#D.Device:2.Device.MQTT.Capabilities.ProtocolVersionsSupported.5.0"><em>5.0</em></a>.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.MQTT.Client.RequestProblemInfo">RequestProblemInfo</span></td>
<td>boolean</td>
<td>W</td>
<td>This value indicates whether the Reason String or User Properties are sent in the case of failures.(see [<a href="#R.MQTT50">Section 3.1.2.11.7/MQTT50</a>]).
A change of this parameter is only communicated to the MQTT server with the next MQTT CONNECT packet. If the change needs to be applied immediately, the parameter <a href="#D.Device:2.Device.MQTT.Client.ForceReconnect"><em>ForceReconnect</em></a> has to be set as well.
This parameter only applies if <a href="#D.Device:2.Device.MQTT.Client.ProtocolVersion"><em>ProtocolVersion</em></a> is set to <a href="#D.Device:2.Device.MQTT.Capabilities.ProtocolVersionsSupported.5.0"><em>5.0</em></a>.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.MQTT.Client.AuthenticationMethod">AuthenticationMethod</span></td>
<td>string(0:256)</td>
<td>W</td>
<td>This value defines the extended authentication method to be used (see [<a href="#R.MQTT50">Section 3.1.2.11.9/MQTT50</a>]).
If the parameter is empty, no extended authentication is performed.
A change of this parameter is only communicated to the MQTT server with the next MQTT CONNECT packet. If the change needs to be applied immediately, the parameter <a href="#D.Device:2.Device.MQTT.Client.ForceReconnect"><em>ForceReconnect</em></a> has to be set as well.
This parameter only applies if <a href="#D.Device:2.Device.MQTT.Client.ProtocolVersion"><em>ProtocolVersion</em></a> is set to <a href="#D.Device:2.Device.MQTT.Capabilities.ProtocolVersionsSupported.5.0"><em>5.0</em></a>.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.MQTT.Client.ClientID">ClientID</span></td>
<td>string(0:65535)</td>
<td>W</td>
<td>The MQTT client identifier used in the <span class="inserted">MQTT </span>CONNECT <span class="removed">message</span><span class="inserted">packet</span> (see [<a href="#R.MQTT31"><span class="inserted">section </span>3.1/MQTT31</a>]<span class="removed"> and</span><span class="inserted">,</span> <strong>{{bibref: non-existent <span class="inserted">MQTT31</span>}}</strong>). <span class="removed">This</span><span class="inserted">If <a href="#D.Device:2.Device.MQTT.Client.ProtocolVersion"><em>ProtocolVersion</em></a> is set to <a href="#D.Device:2.Device.MQTT.Capabilities.ProtocolVersionsSupported.3.1"><em>3.1</em></a> or <a href="#D.Device:2.Device.MQTT.Capabilities.ProtocolVersionsSupported.3.1.1"><em>3.1.1</em></a>, this</span> parameter MUST NOT be <span class="removed">an empty string,</span><span class="inserted">an</span> <span class="removed">the</span><span class="inserted">empty</span> <span class="removed">CPE</span><span class="inserted">string.</span> <span class="removed">has</span><span class="inserted">If <a href="#D.Device:2.Device.MQTT.Client.ProtocolVersion"><em>ProtocolVersion</em></a> is set</span> to <span class="removed">provide</span><span class="inserted"><a href="#D.Device:2.Device.MQTT.Capabilities.ProtocolVersionsSupported.5.0"><em>5.0</em></a>,</span> <span class="removed">a</span><span class="inserted">an</span> <span class="removed">default</span><span class="inserted">empty</span> <span class="removed">value for the parameter, which can be changed by the ACS. A change of this parameter</span><span class="inserted">string</span> is <span class="removed">only</span><span class="inserted">allowed.</span> <span class="removed">communicated to the MQTT broker with the next MQTT CONNECT message. If the change needs to be applied immediately, the parameter <a href="#D.Device:2.Device.MQTT.Client.ForceReconnect"><em>ForceReconnect</em></a> has to be set as well.</span><span class="inserted">A change of this parameter is only communicated to the MQTT server with the next MQTT CONNECT packet. If the change needs to be applied immediately, the parameter <a href="#D.Device:2.Device.MQTT.Client.ForceReconnect"><em>ForceReconnect</em></a> has to be set as well.</span>

<div class="diffs"><p><strong>Changes in 2.13:</strong></p>

<ul>
<li>Changed <em>0:65535</em> size minLength = <em>1</em> ⇒ <em>0</em></li>
<li>Changed <em>0:65535</em> size maxLength = <em>23</em> ⇒ <em>65535</em></li></ul></div></td>
<td>-</td>
<td>2.10</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.MQTT.Client.WillDelayInterval">WillDelayInterval</span></td>
<td>unsignedInt</td>
<td>W</td>
<td>The delay in <em>seconds</em> after the session is disconnected, before sending the Will message [<a href="#R.MQTT50">Section 3.1.3.2.2/MQTT50</a>]). A value of 0 indicates that there is no delay.
A change of this parameter is only communicated to the MQTT server with the next MQTT CONNECT packet. If will handling is enabled (Parameter <a href="#D.Device:2.Device.MQTT.Client.WillEnable"><em>WillEnable</em></a> is set to <em>true</em>) and the change needs to be applied immediately, the parameter <a href="#D.Device:2.Device.MQTT.Client.ForceReconnect"><em>ForceReconnect</em></a> has to be set as well.
This parameter only applies if <a href="#D.Device:2.Device.MQTT.Client.ProtocolVersion"><em>ProtocolVersion</em></a> is set to <a href="#D.Device:2.Device.MQTT.Capabilities.ProtocolVersionsSupported.5.0"><em>5.0</em></a>.</td>
<td>5</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.MQTT.Client.WillMessageExpiryInterval">WillMessageExpiryInterval</span></td>
<td>unsignedInt</td>
<td>W</td>
<td>The lifetime in <em>seconds</em> of a Will Message (see [<a href="#R.MQTT50">Section 3.1.3.2.4/MQTT50</a>]). A value of 0 indicates that no message expiry interval value is specified for in the will message properties of a CONNECT packet.
This parameter only applies if <a href="#D.Device:2.Device.MQTT.Client.ProtocolVersion"><em>ProtocolVersion</em></a> is set to <a href="#D.Device:2.Device.MQTT.Capabilities.ProtocolVersionsSupported.5.0"><em>5.0</em></a>.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.MQTT.Client.WillContentType">WillContentType</span></td>
<td>string(:256)</td>
<td>W</td>
<td>Describes the type of the <a href="#D.Device:2.Device.MQTT.Client.WillValue"><em>WillValue</em></a> [<a href="#R.MQTT50">Section 3.1.3.2.5/MQTT50</a>]).
A change of this parameter is only communicated to the MQTT server with the next MQTT CONNECT packet. If will handling is enabled (Parameter <a href="#D.Device:2.Device.MQTT.Client.WillEnable"><em>WillEnable</em></a> is set to <em>true</em>) and the change needs to be applied immediately, the parameter <a href="#D.Device:2.Device.MQTT.Client.ForceReconnect"><em>ForceReconnect</em></a> has to be set as well.
This parameter only applies if <a href="#D.Device:2.Device.MQTT.Client.ProtocolVersion"><em>ProtocolVersion</em></a> is set to <a href="#D.Device:2.Device.MQTT.Capabilities.ProtocolVersionsSupported.5.0"><em>5.0</em></a>.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.MQTT.Client.WillResponseTopic">WillResponseTopic</span></td>
<td>string(:65535)</td>
<td>W</td>
<td>Topic Name for a will response message. The presence of a Response Topic identifies the Will Message as a Request [<a href="#R.MQTT50">Section 3.1.3.2.6/MQTT50</a>]).
If the <em>WillResponseTopic</em> is an empty string the will response topic will not be sent in a MQTT CONNECT packet.
A change of this parameter is only communicated to the MQTT server with the next MQTT CONNECT packet. If will handling is enabled (Parameter <a href="#D.Device:2.Device.MQTT.Client.WillEnable"><em>WillEnable</em></a> is set to <em>true</em>) and the change needs to be applied immediately, the parameter <a href="#D.Device:2.Device.MQTT.Client.ForceReconnect"><em>ForceReconnect</em></a> has to be set as well.
This parameter only applies if <a href="#D.Device:2.Device.MQTT.Client.ProtocolVersion"><em>ProtocolVersion</em></a> is set to <a href="#D.Device:2.Device.MQTT.Capabilities.ProtocolVersionsSupported.5.0"><em>5.0</em></a>.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.MQTT.Client.WillTopic">WillTopic</span></td>
<td>string(:65535)</td>
<td>W</td>
<td>The Topic sent in the Will Message (see [<a href="#R.MQTT31"><span class="inserted">section </span>3.1/MQTT31</a>]<span class="removed"> and</span><span class="inserted">,</span> <strong>{{bibref: non-existent <span class="inserted">MQTT31</span>}}</strong>). This parameter is only used if <a href="#D.Device:2.Device.MQTT.Client.WillEnable"><em>WillEnable</em></a> is set to <em>true</em>. <span class="removed">A change of this parameter is only communicated to the MQTT broker with the next MQTT CONNECT message. If the will handling is enabled (Paramter <a href="#D.Device:2.Device.MQTT.Client.WillEnable"><em>WillEnable</em></a> is set to <em>true</em>) and the change needs to be applied immediately, the parameter <a href="#D.Device:2.Device.MQTT.Client.ForceReconnect"><em>ForceReconnect</em></a> has to be set as well.</span><span class="inserted">A change of this parameter is only communicated to the MQTT server with the next MQTT CONNECT packet. If will handling is enabled (Parameter <a href="#D.Device:2.Device.MQTT.Client.WillEnable"><em>WillEnable</em></a> is set to <em>true</em>) and the change needs to be applied immediately, the parameter <a href="#D.Device:2.Device.MQTT.Client.ForceReconnect"><em>ForceReconnect</em></a> has to be set as well.</span>

<div class="diffs"><p><strong>Changes in 2.13:</strong></p>

<ul>
<li>Added string <em>:65535</em> size</li></ul></div></td>
<td>-</td>
<td>2.10</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.MQTT.Client.WillValue">WillValue</span></td>
<td>string(:65535)</td>
<td>W</td>
<td>The value sent in the Will Message (see [<a href="#R.MQTT31"><span class="inserted">section </span>3.1/MQTT31</a>]<span class="removed"> and</span><span class="inserted">,</span> <strong>{{bibref: non-existent <span class="inserted">MQTT31</span>}}</strong>). This parameter is only used if <a href="#D.Device:2.Device.MQTT.Client.WillEnable"><em>WillEnable</em></a> is set to <em>true</em>. <span class="removed">A change of this parameter is only communicated to the MQTT broker with the next MQTT CONNECT message. If the will handling is enabled (Paramter <a href="#D.Device:2.Device.MQTT.Client.WillEnable"><em>WillEnable</em></a> is set to <em>true</em>) and the change needs to be applied immediately, the parameter <a href="#D.Device:2.Device.MQTT.Client.ForceReconnect"><em>ForceReconnect</em></a> has to be set as well.</span><span class="inserted">A change of this parameter is only communicated to the MQTT server with the next MQTT CONNECT packet. If will handling is enabled (Parameter <a href="#D.Device:2.Device.MQTT.Client.WillEnable"><em>WillEnable</em></a> is set to <em>true</em>) and the change needs to be applied immediately, the parameter <a href="#D.Device:2.Device.MQTT.Client.ForceReconnect"><em>ForceReconnect</em></a> has to be set as well.</span>

<div class="diffs"><p><strong>Changes in 2.13:</strong></p>

<ul>
<li>Added string <em>:65535</em> size</li></ul></div></td>
<td>-</td>
<td>2.10</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.MQTT.Client.Username">Username</span></td>
<td>string(:256)</td>
<td>W</td>
<td>Username used to authenticate the <span class="removed">CPE</span><span class="inserted">MQTT client</span> when making a connection to the MQTT broker. <span class="inserted">The value is sent in the MQTT CONNECT packet (see </span>[[<span class="inserted">section 3.1</span>, [<a href="#R.MQTT31">Section 3.1.3.4/MQTT31</a>] or [<a href="#R.MQTT50">Section 3.1.3.5/MQTT50</a>]). For MQTT 3.1 [<a href="#R.MQTT31">Section /MQTT31</a>]3.1/MQTT31](#R.MQTT31)] recommends that the <span class="removed">username</span><span class="inserted">user name</span> has 12 characters or fewer, but this is not required. If this parameter is an empty string no authentication parameters are sent in the MQTT CONNECT <span class="removed">message.</span><span class="inserted">packet.</span></td>
<td>-</td>
<td>2.10</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.MQTT.Client.Password">Password</span></td>
<td>string(:256)</td>
<td>W</td>
<td><p>Password used to authenticate the <span class="removed">CPE</span><span class="inserted">MQTT client</span> when making a connection to the MQTT <span class="removed">broker</span><span class="inserted">broker. The value is sent in the MQTT CONNECT packet</span> (see [<a href="#R.MQTT31"><span class="inserted">section </span>3.1/MQTT31</a>]<span class="removed"> and</span><span class="inserted">,</span> <strong>{{bibref: non-existent <span class="inserted">MQTT31</span>}}</strong>). This password is only sent in the MQTT CONNECT <span class="removed">message</span><span class="inserted">packet</span> if <a href="#D.Device:2.Device.MQTT.Client.Username"><em>Username</em></a> is not an empty string.</p>

<p>When read, this parameter returns an empty string, regardless of the actual value.</p></td>
<td>-</td>
<td>2.10</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.MQTT.Client.PublishMessageExpiryInterval">PublishMessageExpiryInterval</span></td>
<td>unsignedInt</td>
<td>W</td>
<td>The lifetime in <em>seconds</em> of a PUBLISH Message (see [<a href="#R.MQTT50">Section 3.3.2.3.3/MQTT50</a>]). A value of 0 indicates that no message expiry interval value is included in the PUBLISH packet.
This parameter only applies if <a href="#D.Device:2.Device.MQTT.Client.ProtocolVersion"><em>ProtocolVersion</em></a> is set to <a href="#D.Device:2.Device.MQTT.Capabilities.ProtocolVersionsSupported.5.0"><em>5.0</em></a>.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.MQTT.Client.MessageRetryTime">MessageRetryTime</span></td>
<td>unsignedInt(1:)</td>
<td>W</td>
<td>Message retry time in <em>seconds</em> defines the wait time before a MQTT message that expects a response (QoS value of message is &gt; 0, or PUBLISH, PUBREL, SUBSCRIBE, UNSUBSCRIBE message) is resent, because the response is not received (see [<a href="#R.MQTT31"><span class="inserted">section </span>4.2/MQTT31</a>]<span class="inserted">).</span> <span class="removed">and</span><span class="inserted">This</span> <strong>{{replaced: unexpected argument [replaced(4.4}})., #.Capabilities.ProtocolVersionsSupported), &lsquo;.&rsquo;] after: {{bibref|MQTT311, [’parameter only applies if ’, param(ProtocolVersion), ’ is set to ’, enum(3.1)]}}</strong></td>
<td>5</td>
<td>2.10</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.MQTT.Client.ConnectRetryTime">ConnectRetryTime</span></td>
<td>unsignedInt(1:)</td>
<td>W</td>
<td>Connect retry time in <em>seconds</em> defines the wait time before a failed MQTT broker connection is retried. A failure can either be on the connection level (the TCP/IP or TLS can not be established) or on the Protocol level, the MQTT client does not receive a MQTT CONNACK <span class="removed">message</span><span class="inserted">packet</span> on a MQTT CONNECT <span class="removed">message</span><span class="inserted">packet</span> sent.<span class="inserted"> If the parameter <a href="#D.Device:2.Device.MQTT.Client.ConnectRetryIntervalMultiplier"><em>ConnectRetryIntervalMultiplier</em></a> is defined, the MQTT client MUST use a random value between <em>ConnectRetryTime</em>*(<a href="#D.Device:2.Device.MQTT.Client.ConnectRetryIntervalMultiplier"><em>ConnectRetryIntervalMultiplier</em></a>/1000)<sup>(n-1) and <em>ConnectRetryTime</em>*(<a href="#D.Device:2.Device.MQTT.Client.ConnectRetryIntervalMultiplier"><em>ConnectRetryIntervalMultiplier</em></a>/1000)</sup>n for the connect retry time, with n equals the current retry number. The max number of n is 10, starting with the 11th retry always the value n = 10 is used. If the parameters <a href="#D.Device:2.Device.MQTT.Client.ConnectRetryIntervalMultiplier"><em>ConnectRetryIntervalMultiplier</em></a> and <a href="#D.Device:2.Device.MQTT.Client.ConnectRetryMaxInterval"><em>ConnectRetryMaxInterval</em></a> are defined, the MQTT client MUST use the value of <a href="#D.Device:2.Device.MQTT.Client.ConnectRetryMaxInterval"><em>ConnectRetryMaxInterval</em></a> if the calculated random value exceeds the value of <a href="#D.Device:2.Device.MQTT.Client.ConnectRetryMaxInterval"><em>ConnectRetryMaxInterval</em></a>.</span>

<div class="diffs"><p><strong>Changes in 2.13:</strong></p>

<ul>
<li>Changed default value = <em>30</em> ⇒ <em>5</em></li></ul></div></td>
<td>5</td>
<td>2.10</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.MQTT.Client.ConnectRetryIntervalMultiplier">ConnectRetryIntervalMultiplier</span></td>
<td>unsignedInt(1000:65535)</td>
<td>W</td>
<td>Configures the retry interval multiplier.
This value is expressed in units of 0.001. Hence the values of the multiplier range between 1.000 and 65.535.</td>
<td>2000</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.MQTT.Client.ConnectRetryMaxInterval">ConnectRetryMaxInterval</span></td>
<td>unsignedInt(1:)</td>
<td>W</td>
<td>The maximum reconnection wait interval, in <em>seconds</em>.</td>
<td>30720</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.MQTT.Client.ResponseInformation">ResponseInformation</span></td>
<td>string(:65535)</td>
<td>R</td>
<td>The value of the CONNACK Response Information property supplied by a MQTT 5.0 server. This value is used by a MQTT 5.0 client as the basis for the PUBLISH Response Topic property for all PUBLISH packets that expect a response. If the value of <em>ResponseInformation</em> is not a subset (wildcarded or precise match) of any of the <a href="#D.Device:2.Device.MQTT.Client.Subscription.Topic"><em>Subscription.{i}.Topic</em></a> values the MQTT client MUST subscribe to this Topic.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.MQTT.Client.UserPropertyNumberOfEntries">UserPropertyNumberOfEntries</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>The number of entries in the <a href="#D.Device:2.Device.MQTT.Client.UserProperty."><em>UserProperty</em></a> table.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.MQTT.Client.Subscription.">Device.MQTT.Client.{i}.Subscription.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>List of MQTT subscriptions handled by the MQTT client.
The MQTT client MUST subscribe with the MQTT broker for all subscription instances, whose parameter <a href="#D.Device:2.Device.MQTT.Client.Subscription.Enable"><em>Enable</em></a> is set to <em>true</em>, when it establishes a new connection to the MQTT broker. Disabled subscription instances with <a href="#D.Device:2.Device.MQTT.Client.Subscription.Enable"><em>Enable</em></a> set to <em>false</em> will be ignored during connection establishment.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.MQTT.Client.Subscription.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.MQTT.Client.Subscription.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.
At most one enabled entry in this table can exist with a given value for <a href="#D.Device:2.Device.MQTT.Client.Subscription.Topic"><em>Topic</em></a>.</p></td>
<td>-</td>
<td>2.10</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.MQTT.Client.Subscription.Enable">Enable</span></td>
<td>boolean</td>
<td>W</td>
<td><span class="removed">Setting Enable to <em>true</em> means the topic is subscribed at the MQTT broker with</span><span class="inserted">When</span> a MQTT <span class="removed">SUBSCRIBE</span><span class="inserted">client</span> <span class="removed">message, setting it</span><span class="inserted">connects</span> to<span class="removed"> <em>false</em> will unsubscribe the topic from the MQTT broker with</span> a MQTT <span class="removed">UNSUBSCRIBE</span><span class="inserted">server,</span> <span class="removed">message.</span><span class="inserted">it MUST send a SUBSCRIBE message including all instances with <em>Enable</em> set to <em>true</em>.</span> If the MQTT client is already connected with the <span class="removed">Broker</span><span class="inserted">MQTT server</span> (<a href="#D.Device:2.Device.MQTT.Client.Status"><em>Status</em></a> is <a href="#D.Device:2.Device.MQTT.Client.Status.Connected"><em>Connected</em></a>), <span class="removed">the</span><span class="inserted">a</span> MQTT SUBSCRIBE or UNSUBSCRIBE message <span class="removed">is</span><span class="inserted">MUST be</span> sent <span class="removed">directly,</span><span class="inserted">directly</span> <span class="removed">otherwise</span><span class="inserted">when</span> <span class="removed">it</span><span class="inserted"><em>Enable</em></span> is <span class="removed">sent</span><span class="inserted">changed</span> <span class="removed">after</span><span class="inserted">to</span> <span class="removed">the</span><span class="inserted"><em>true</em></span> <span class="removed">next</span><span class="inserted">or</span> <span class="removed">successful</span><span class="inserted"><em>false</em>,</span> <span class="removed">connect.</span><span class="inserted">respectively.</span> The actual status of the subscription is indicated with <a href="#D.Device:2.Device.MQTT.Client.Subscription.Status"><em>Status</em></a>.</td>
<td>-</td>
<td>2.10</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.MQTT.Client.Subscription.Status">Status</span></td>
<td>string</td>
<td>R</td>
<td><p>Indicates the status of this subscription. Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.MQTT.Client.Subscription.Status.Unsubscribed"><em>Unsubscribed</em></span></li>
<li><span id="D.Device:2.Device.MQTT.Client.Subscription.Status.Subscribed"><em>Subscribed</em></span></li>
<li><span id="D.Device:2.Device.MQTT.Client.Subscription.Status.Subscribing"><em>Subscribing</em></span> (OPTIONAL)</li>
<li><span id="D.Device:2.Device.MQTT.Client.Subscription.Status.Unsubscribing"><em>Unsubscribing</em></span> (OPTIONAL)</li>
<li><span id="D.Device:2.Device.MQTT.Client.Subscription.Status.Error"><em>Error</em></span>
The <a href="#D.Device:2.Device.MQTT.Client.Subscription.Status.Subscribed"><em>Subscribed</em></a> value indicates that the topic was successfully subscribed with the MQTT broker, the MQTT client received the SUBACK message for this topic from the server. The <a href="#D.Device:2.Device.MQTT.Client.Subscription.Status.Subscribing"><em>Subscribing</em></a> value MAY be used by the CPE to indicate that the a SUBSCRIBE message for this topic was sent, and the CPE is waiting for a SUBACK message. The <a href="#D.Device:2.Device.MQTT.Client.Subscription.Status.Unsubscribed"><em>Unsubscribed</em></a> value indicates that the topic is not <span class="removed">reqistered</span><span class="inserted">registered</span> with the MQTT broker. The <a href="#D.Device:2.Device.MQTT.Client.Subscription.Status.Unsubscribing"><em>Unsubscribing</em></a> value MAY be used by the CPE to indicate that the an UNSUBSCRIBE message for this topic was sent, and the CPE is waiting for an UNSUBACK message. If the <a href="#D.Device:2.Device.MQTT.Client.Subscription.Enable"><em>Enable</em></a> is set to <em>false</em> the status MUST be either <a href="#D.Device:2.Device.MQTT.Client.Subscription.Status.Unsubscribed"><em>Unsubscribed</em></a> or if the unsubscription failed <a href="#D.Device:2.Device.MQTT.Client.Subscription.Status.Error"><em>Error</em></a>.</li></ul></td>
<td>-</td>
<td>2.10</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.MQTT.Client.Subscription.Topic">Topic</span></td>
<td>string(:65535)</td>
<td>W</td>
<td>Name of the subscribed topic. Topic names may contain wildcards according to the rules specified in [<a href="#R.MQTT31"><span class="inserted">section </span>Appendix A/MQTT31</a>]<span class="removed"> and</span><span class="inserted">,</span> <strong>{{bibref: non-existent <strong>{{replaced: unexpected argument section 4.7 after: MQTT311, MQTT31}}</strong> or [<a href="#R.MQTT50">MQTT50</a>]}}</strong>.</td>
<td>-</td>
<td>2.10</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.MQTT.Client.Subscription.QoS">QoS</span></td>
<td>unsignedInt(0:2)</td>
<td>W</td>
<td>The MQTT QoS level assigned with the subscription (see [<a href="#R.MQTT31"><span class="inserted">section </span>4.1/MQTT31</a>]<span class="removed"> and</span><span class="inserted">,</span> <strong>{{bibref: non-existent <strong>{{replaced: unexpected argument section 4.3 after: MQTT311, MQTT31}}</strong>) or [<a href="#R.MQTT50">MQTT50</a>]}}</strong><span class="removed">).</span><span class="inserted">.</span></td>
<td>-</td>
<td>2.10</td></tr>
<tr class="object inserted">
<td><span id="D.Device:2.Device.MQTT.Client.UserProperty.">Device.MQTT.Client.{i}.UserProperty.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>List of user properties used by the MQTT client.
This table only applies if <a href="#D.Device:2.Device.MQTT.Client.ProtocolVersion"><em>ProtocolVersion</em></a> is set to <a href="#D.Device:2.Device.MQTT.Capabilities.ProtocolVersionsSupported.5.0"><em>5.0</em></a>.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.MQTT.Client.UserProperty.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.MQTT.Client.UserProperty.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.
At most one enabled entry in this table can exist with a given value for <a href="#D.Device:2.Device.MQTT.Client.UserProperty.Name"><em>Name</em></a>.</p></td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.MQTT.Client.UserProperty.Alias">Alias</span></td>
<td><span title="Alias">string(:64)</span></td>
<td>W</td>
<td><p>[<a href="#T.Alias">Alias</a>] A non-volatile handle used to reference this instance. Alias provides a
mechanism for an ACS to label this instance for future reference.</p>

<p>If the CPE supports the Alias-based Addressing feature as defined in
[<a href="#R.TR-069">Section 3.6.1/TR-069</a>] and described in [<a href="#R.TR-069">Appendix II/TR-069</a>],
the following mandatory constraints MUST be enforced:</p>

<ul>
<li>Its value MUST NOT be empty.</li>
<li>Its value MUST start with a letter.</li>
<li>If its value is not assigned by the ACS, it MUST start with a &ldquo;cpe-&rdquo;
prefix.</li>
<li>The CPE MUST NOT change the parameter value.</li></ul>

<p>The Agent MUST choose an initial value that doesn’t conflict with any existing entries.</p>

<p>Active Notification requests for this parameter MAY be denied.</p></td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.MQTT.Client.UserProperty.Enable">Enable</span></td>
<td>boolean</td>
<td>W</td>
<td>Setting Enable to <em>true</em> means the user property is used in the indicated control packet(s). The user property will be applied to all control packets of the same control packet type (e.g PUBLISH).</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.MQTT.Client.UserProperty.Name">Name</span></td>
<td>string(:65535)</td>
<td>W</td>
<td>Name of the user property</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.MQTT.Client.UserProperty.Value">Value</span></td>
<td>string(:65535)</td>
<td>W</td>
<td>Value of the user property</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.MQTT.Client.UserProperty.PacketType">PacketType</span></td>
<td>string[]</td>
<td>W</td>
<td><p>Comma-separated list of strings. Each entry defines the control packet type(s) in which the user property is included.</p>

<p>Each list item is an enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.MQTT.Client.UserProperty.PacketType.AUTH"><em>AUTH</em></span> (User property will be added in the AUTH control packet (see [<a href="#R.MQTT50">Section 3.15.2.2.5/MQTT50</a>]))</li>
<li><span id="D.Device:2.Device.MQTT.Client.UserProperty.PacketType.CONNECT"><em>CONNECT</em></span> (User property will be added in the CONNECT packet (see [<a href="#R.MQTT50">Section 3.1.3.2.8/MQTT50</a>]))</li>
<li><span id="D.Device:2.Device.MQTT.Client.UserProperty.PacketType.DISCONNECT"><em>DISCONNECT</em></span> (User property will be added in the DISCONNECT packet (see [<a href="#R.MQTT50">Section 3.14.2.2.4/MQTT50</a>]))</li>
<li><span id="D.Device:2.Device.MQTT.Client.UserProperty.PacketType.PUBLISH"><em>PUBLISH</em></span> (User property will be added in the PUBLISH packet (see [<a href="#R.MQTT50">Section 3.3.2.3.7/MQTT50</a>]))</li>
<li><span id="D.Device:2.Device.MQTT.Client.UserProperty.PacketType.PUBACK"><em>PUBACK</em></span> (User property will be added in the PUBACK packet (see [<a href="#R.MQTT50">Section 3.4.2.2.3/MQTT50</a>]))</li>
<li><span id="D.Device:2.Device.MQTT.Client.UserProperty.PacketType.PUBREC"><em>PUBREC</em></span> (User property will be added in the PUBREC packet (see [<a href="#R.MQTT50">Section 3.5.2.2.3/MQTT50</a>]))</li>
<li><span id="D.Device:2.Device.MQTT.Client.UserProperty.PacketType.PUBREL"><em>PUBREL</em></span> (User property will be added in the PUBREL packet (see [<a href="#R.MQTT50">Section 3.6.2.2.3/MQTT50</a>]))</li>
<li><span id="D.Device:2.Device.MQTT.Client.UserProperty.PacketType.PUBCOMP"><em>PUBCOMP</em></span> (User property will be added in the PUBCOMP packet (see [<a href="#R.MQTT50">Section 3.7.2.2.3/MQTT50</a>]))</li>
<li><span id="D.Device:2.Device.MQTT.Client.UserProperty.PacketType.SUBSCRIBE"><em>SUBSCRIBE</em></span> (User property will be added in the SUBSCRIBE packet (see [<a href="#R.MQTT50">Section 3.8.2.1.3/MQTT50</a>]))</li>
<li><span id="D.Device:2.Device.MQTT.Client.UserProperty.PacketType.UNSUBSCRIBE"><em>UNSUBSCRIBE</em></span> (User property will be added in the UNSUBSCRIBE packet (see [<a href="#R.MQTT50">Section 3.10.2.1.2/MQTT50</a>]))</li>
<li><span id="D.Device:2.Device.MQTT.Client.UserProperty.PacketType.WILL"><em>WILL</em></span> (User property will be added in the WILL properties (see [<a href="#R.MQTT50">Section 3.1.3.2/MQTT50</a>]))</li></ul></td>
<td>-</td>
<td>2.13</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.MQTT.Broker.">Device.MQTT.Broker.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>MQTT broker table. Contains a list of configured MQTT brokers.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.MQTT.Broker.Alias"><em>Alias</em></a>, or with a given value for <a href="#D.Device:2.Device.MQTT.Broker.Name"><em>Name</em></a>. On creation of a new table entry, the Agent MUST choose initial values for <a href="#D.Device:2.Device.MQTT.Broker.Alias"><em>Alias</em></a> and <a href="#D.Device:2.Device.MQTT.Broker.Name"><em>Name</em></a> such that the new entry does not conflict with any existing entries.</p></td>
<td>-</td>
<td>2.10</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.MQTT.Broker.Username">Username</span></td>
<td>string(:256)</td>
<td>W</td>
<td><span class="removed">Username</span><span class="inserted">User name</span> used to authenticate the MQTT clients, which connect to the MQTT broker. If this parameter is an empty string no authentication is used.</td>
<td>-</td>
<td>2.10</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.MQTT.Broker.Bridge.">Device.MQTT.Broker.{i}.Bridge.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>Configures MQTT bridges, which are used to communicate with other MQTT brokers.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.MQTT.Broker.Bridge.Alias"><em>Alias</em></a>, or with a given value for <a href="#D.Device:2.Device.MQTT.Broker.Bridge.Name"><em>Name</em></a>. On creation of a new table entry, the Agent MUST choose initial values for <a href="#D.Device:2.Device.MQTT.Broker.Bridge.Alias"><em>Alias</em></a> and <a href="#D.Device:2.Device.MQTT.Broker.Bridge.Name"><em>Name</em></a> such that the new entry does not conflict with any existing entries.</p>

<div class="diffs"><p><strong>Changes in 2.13:</strong></p>

<ul>
<li>Added <a href="#D.Device:2.Device.MQTT.Broker.Bridge.CleanStart"><em>CleanStart</em></a> parameter</li></ul></div></td>
<td>-</td>
<td>2.10</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.MQTT.Broker.Bridge.CleanSession">CleanSession</span></td>
<td>boolean</td>
<td>W</td>
<td>The value of the MQTT clean session flag in the MQTT <span class="removed">bridge</span><span class="inserted">CONNECT</span> <span class="removed">connection</span><span class="inserted">packet</span> (see [<a href="#R.MQTT31"><span class="inserted">section </span>3.1/MQTT31</a>] and <strong>{{bibref: non-existent <span class="inserted">MQTT31</span>}}</strong><span class="removed">).</span><span class="inserted">) to establish a MQTT bridge connection.</span> If this flag is set to <em>true</em> (default), the remote MQTT broker will delete all subscription information after a Disconnect. <span class="removed">A</span><span class="inserted">A change of this parameter is only communicated to the MQTT server with the next MQTT CONNECT packet. If the change needs to be applied immediately, the parameter <a href="#D.Device:2.Device.MQTT.Broker.Bridge.ForceReconnect"><em>ForceReconnect</em></a> has to be set as well.</span> <span class="removed">change of this</span><span class="inserted">This</span> parameter <span class="inserted">only applies if <a href="#D.Device:2.Device.MQTT.Broker.Bridge.ProtocolVersion"><em>ProtocolVersion</em></a> </span>is <span class="removed">only effective after the next MQTT CONNECT message</span><span class="inserted">set</span> to <span class="removed">the</span><span class="inserted"><a href="#D.Device:2.Device.MQTT.Capabilities.ProtocolVersionsSupported.3.1"><em>3.1</em></a></span> <span class="removed">remote</span><span class="inserted">or</span> <span class="removed">MQTT broker. If the change needs to be applied immediately, the parameter <a href="#D.Device:2.Device.MQTT.Broker.Bridge.ForceReconnect"><em>ForceReconnect</em></a> has to be set as well.</span><span class="inserted"><a href="#D.Device:2.Device.MQTT.Capabilities.ProtocolVersionsSupported.3.1.1"><em>3.1.1</em></a>.</span></td>
<td>true</td>
<td>2.10</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.MQTT.Broker.Bridge.CleanStart">CleanStart</span></td>
<td>boolean</td>
<td>W</td>
<td>The value of the MQTT Clean Start flag in the MQTT CONNECT packet (see [<a href="#R.MQTT50">Section 3.1.2.4/MQTT50</a>] to establish a MQTT bridge connection. If this flag is set to <em>true</em> (default), the remote MQTT broker will delete all subscription information after a Disconnect.
A change of this parameter is only communicated to the MQTT server with the next MQTT CONNECT packet. If the change needs to be applied immediately, the parameter <a href="#D.Device:2.Device.MQTT.Broker.Bridge.ForceReconnect"><em>ForceReconnect</em></a> has to be set as well..
This parameter only applies if <a href="#D.Device:2.Device.MQTT.Broker.Bridge.ProtocolVersion"><em>ProtocolVersion</em></a> is set to <a href="#D.Device:2.Device.MQTT.Capabilities.ProtocolVersionsSupported.5.0"><em>5.0</em></a>.</td>
<td>true</td>
<td>2.13</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.MQTT.Broker.Bridge.KeepAliveTime">KeepAliveTime</span></td>
<td>unsignedInt(:65535)</td>
<td>W</td>
<td>Keep Alive Time in <em>seconds</em> defines the maximum wait time after which a <span class="removed">message</span><span class="inserted">packet</span> has to be sent to the remote MQTT broker (see [<a href="#R.MQTT31"><span class="inserted">section </span>3.1/MQTT31</a>]<span class="removed"> and</span><span class="inserted">,</span> <strong>{{bibref: non-existent <span class="inserted">MQTT31</span>}}</strong>). If no regular <span class="removed">messages</span><span class="inserted">packet</span> can be sent a MQTT PINGREQ<span class="inserted"> packet</span> is sent. A value of zero (0) means no keep alive <span class="removed">message</span><span class="inserted">packets</span> are sent and the bridge is not disconnected by the server. <span class="removed">A change of this parameter is only effective after the next MQTT CONNECT message to the remote MQTT broker. If the change needs to be applied immediately, the parameter <a href="#D.Device:2.Device.MQTT.Broker.Bridge.ForceReconnect"><em>ForceReconnect</em></a> has to be set as well.</span><span class="inserted">A change of this parameter is only communicated to the MQTT server with the next MQTT CONNECT packet. If the change needs to be applied immediately, the parameter <a href="#D.Device:2.Device.MQTT.Broker.Bridge.ForceReconnect"><em>ForceReconnect</em></a> has to be set as well.</span></td>
<td>60</td>
<td>2.10</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.MQTT.Broker.Bridge.ClientID">ClientID</span></td>
<td>string(0:65535)</td>
<td>W</td>
<td>The MQTT client identifier used in the CONNECT <span class="removed">message</span><span class="inserted">packet</span> (see [<a href="#R.MQTT31"><span class="inserted">section </span>3.1/MQTT31</a>]<span class="removed"> and</span><span class="inserted">,</span> <strong>{{bibref: non-existent <span class="inserted">MQTT31</span>}}</strong>). <span class="removed">This</span><span class="inserted">If <a href="#D.Device:2.Device.MQTT.Broker.Bridge.ProtocolVersion"><em>ProtocolVersion</em></a> is set to <a href="#D.Device:2.Device.MQTT.Capabilities.ProtocolVersionsSupported.3.1"><em>3.1</em></a> or <a href="#D.Device:2.Device.MQTT.Capabilities.ProtocolVersionsSupported.3.1.1"><em>3.1.1</em></a>, this</span> parameter MUST NOT be <span class="removed">an empty string,</span><span class="inserted">an</span> <span class="removed">the</span><span class="inserted">empty</span> <span class="removed">CPE</span><span class="inserted">string.</span> <span class="removed">has</span><span class="inserted">If <a href="#D.Device:2.Device.MQTT.Broker.Bridge.ProtocolVersion"><em>ProtocolVersion</em></a> is set</span> to <span class="removed">provide</span><span class="inserted"><a href="#D.Device:2.Device.MQTT.Capabilities.ProtocolVersionsSupported.5.0"><em>5.0</em></a>,</span> <span class="removed">a</span><span class="inserted">an</span> <span class="removed">default</span><span class="inserted">empty</span> <span class="removed">value for the parameter, which may be changed by the ACS. A change of this parameter</span><span class="inserted">string</span> is <span class="removed">only</span><span class="inserted">allowed.</span> <span class="removed">communicated to the remote MQTT broker with the next MQTT CONNECT message. If the change needs to be applied immediately, the parameter <a href="#D.Device:2.Device.MQTT.Broker.Bridge.ForceReconnect"><em>ForceReconnect</em></a> has to be set as well.</span><span class="inserted">A change of this parameter is only communicated to the MQTT server with the next MQTT CONNECT packet. If the change needs to be applied immediately, the parameter <a href="#D.Device:2.Device.MQTT.Broker.Bridge.ForceReconnect"><em>ForceReconnect</em></a> has to be set as well.</span>

<div class="diffs"><p><strong>Changes in 2.13:</strong></p>

<ul>
<li>Changed <em>0:65535</em> size minLength = <em>1</em> ⇒ <em>0</em></li>
<li>Changed <em>0:65535</em> size maxLength = <em>23</em> ⇒ <em>65535</em></li></ul></div></td>
<td>-</td>
<td>2.10</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.MQTT.Broker.Bridge.Username">Username</span></td>
<td>string(:256)</td>
<td>W</td>
<td><span class="removed">Username</span><span class="inserted">User name</span> used to authenticate the MQTT broker when making a connection over the MQTT <span class="removed">bridge</span><span class="inserted">bridge. The value is sent in the MQTT CONNECT packet</span> (see [<a href="#R.MQTT31"><span class="inserted">section </span>3.1/MQTT31</a>]<span class="removed"> and [<a href="#R.MQTT311">Section 3.1.3.4/MQTT311</a>]).</span><span class="inserted">,</span> [[<span class="inserted">section 3.1.3.4</span> or [<a href="#R.MQTT50">Section 3.1.3.5/MQTT50</a>]). For MQTT 3.1 [<a href="#R.MQTT31">Section /MQTT31</a>]3.1/MQTT31](#R.MQTT31)] recommends that the <span class="removed">username</span><span class="inserted">user name</span> has 12 characters or fewer, but this is not required. If this parameter is an empty string no authentication parameters are sent in the MQTT CONNECT <span class="removed">message.</span><span class="inserted">packet.</span></td>
<td>-</td>
<td>2.10</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.MQTT.Broker.Bridge.Password">Password</span></td>
<td>string(:256)</td>
<td>W</td>
<td><p>Password used to authenticate the MQTT broker when making a connection over the MQTT <span class="removed">bridge</span><span class="inserted">bridge. The value is sent in the MQTT CONNECT packet</span> (see [<a href="#R.MQTT31"><span class="inserted">section </span>3.1/MQTT31</a>]<span class="removed"> and</span><span class="inserted">,</span> <strong>{{bibref: non-existent <span class="inserted">MQTT31</span>}}</strong>). <span class="removed">The</span><span class="inserted">This</span> password is only sent<span class="inserted"> in the MQTT CONNECT packet</span> if <a href="#D.Device:2.Device.MQTT.Broker.Bridge.Username"><em>Username</em></a> is not an empty string.</p>

<p>When read, this parameter returns an empty string, regardless of the actual value.</p></td>
<td>-</td>
<td>2.10</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.MQTT.Broker.Bridge.MessageRetryTime">MessageRetryTime</span></td>
<td>unsignedInt(1:)</td>
<td>W</td>
<td>Message retry time in <em>seconds</em> defines the wait time before a MQTT message that expects a response (QoS value of message is &gt; 0, or PUBLISH, PUBREL, SUBSCRIBE, UNSUBSCRIBE message) is resent, because the response is not received (see [<a href="#R.MQTT31"><span class="inserted">section </span>4.2/MQTT31</a>]<span class="inserted">.</span> <span class="removed">and</span><span class="inserted">This</span> <strong>{{replaced: unexpected argument [replaced(4.4}})., ##.Capabilities.ProtocolVersionsSupported), &lsquo;.&rsquo;] after: {{bibref|MQTT311, [’parameter only applies if ’, param(ProtocolVersion), ’ is set to ’, enum(3.1)]}}</strong></td>
<td>5</td>
<td>2.10</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.MQTT.Broker.Bridge.ConnectRetryTime">ConnectRetryTime</span></td>
<td>unsignedInt(1:)</td>
<td>W</td>
<td>Connect retry time in <em>seconds</em> defines the wait time before a failed bridge connection is retried. A failure can either be on the connection level (e.g. the TCP/IP or TLS <span class="removed">conection</span><span class="inserted">connection</span> can not be established) or on the Protocol level, the MQTT client does not receive a MQTT CONNACK <span class="removed">message</span><span class="inserted">packet</span> on a MQTT CONNECT <span class="removed">message</span><span class="inserted">packet</span> sent.</td>
<td>30</td>
<td>2.10</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.MQTT.Broker.Bridge.Subscription.">Device.MQTT.Broker.{i}.Bridge.{i}.Subscription.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>List of MQTT subscriptions handled over the bridge.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.MQTT.Broker.Bridge.Subscription.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.MQTT.Broker.Bridge.Subscription.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.
At most one enabled entry in this table can exist with the same values for both <a href="#D.Device:2.Device.MQTT.Broker.Bridge.Subscription.Topic"><em>Topic</em></a> and <a href="#D.Device:2.Device.MQTT.Broker.Bridge.Subscription.Direction"><em>Direction</em></a>.</p></td>
<td>-</td>
<td>2.10</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.MQTT.Broker.Bridge.Subscription.Status">Status</span></td>
<td>string</td>
<td>R</td>
<td><p>Indicates the status of this subscription. Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.MQTT.Broker.Bridge.Subscription.Status.Enabled"><em>Enabled</em></span></li>
<li><span id="D.Device:2.Device.MQTT.Broker.Bridge.Subscription.Status.Disabled"><em>Disabled</em></span></li>
<li><span id="D.Device:2.Device.MQTT.Broker.Bridge.Subscription.Status.Error"><em>Error</em></span>
The <a href="#D.Device:2.Device.MQTT.Broker.Bridge.Subscription.Status.Enabled"><em>Enabled</em></a> value indicates that the this subscription is active. In case of incoming directions (<a href="#D.Device:2.Device.MQTT.Broker.Bridge.Subscription.Direction"><em>Direction</em></a> is either <a href="#D.Device:2.Device.MQTT.Broker.Bridge.Subscription.Direction.in"><em>in</em></a> or <a href="#D.Device:2.Device.MQTT.Broker.Bridge.Subscription.Direction.both"><em>both</em></a>) the topic was successfully subscribed with the remote MQTT broker. The <a href="#D.Device:2.Device.MQTT.Broker.Bridge.Subscription.Status.Disabled"><em>Disabled</em></a> value indicates that this subscription is not used. The <a href="#D.Device:2.Device.MQTT.Broker.Bridge.Subscription.Status.Error"><em>Error</em></a> value indicates that an error <span class="removed">occured</span><span class="inserted">occurred</span> (e.g. an subscription could not be made with the remote MQTT broker) and the subscription is not in use.</li></ul></td>
<td>-</td>
<td>2.10</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.MQTT.Broker.Bridge.Subscription.Topic">Topic</span></td>
<td>string(:65535)</td>
<td>W</td>
<td>Name of the subscribed topic. Topic names may contain wildcards according to the rules specified in [<a href="#R.MQTT31"><span class="inserted">section </span>Appendix A/MQTT31</a>]<span class="removed"> and</span><span class="inserted">,</span> <strong>{{bibref: non-existent <strong>{{replaced: unexpected argument section 4.7 after: MQTT311, MQTT31}}</strong> or [<a href="#R.MQTT50">MQTT50</a>]}}</strong>.</td>
<td>-</td>
<td>2.10</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.MQTT.Broker.Bridge.Subscription.QoS">QoS</span></td>
<td>unsignedInt(0:2)</td>
<td>W</td>
<td>The MQTT QoS level assigned with the subscription (see [<a href="#R.MQTT31"><span class="inserted">section </span>4.1/MQTT31</a>]<span class="removed"> and</span><span class="inserted">,</span> <strong>{{bibref: non-existent <strong>{{replaced: unexpected argument section 4.3 after: MQTT311, MQTT31}}</strong>) or [<a href="#R.MQTT50">MQTT50</a>]}}</strong><span class="removed">).</span><span class="inserted">.</span></td>
<td>-</td>
<td>2.10</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.MQTT.Broker.Bridge.Subscription.LocalPrefix">LocalPrefix</span></td>
<td>string(:256)</td>
<td>W</td>
<td><p>The local prefix is used for remapping received topics to the local topics of the MQTT broker and to select the topics to be sent over bridge to the remote MQTT broker.</p>

<ul>
<li>In incoming direction (<a href="#D.Device:2.Device.MQTT.Broker.Bridge.Subscription.Direction"><em>Direction</em></a> is either <a href="#D.Device:2.Device.MQTT.Broker.Bridge.Subscription.Direction.in"><em>in</em></a> or <a href="#D.Device:2.Device.MQTT.Broker.Bridge.Subscription.Direction.both"><em>both</em></a>):</li></ul>

<blockquote>For remote topics received over the bridge the MQTT broker adds the LocalPrefix in front of the received topic, before processing it.</blockquote>

<blockquote><blockquote><ul>
<li><ul>
<li></li></ul></li></ul></blockquote></blockquote>

<blockquote><em>Example:</em></blockquote>

<blockquote><blockquote>Topic is &ldquo;/bus/+&rdquo;, LocalPrefix is &ldquo;/local&rdquo;, Direction is &ldquo;in&rdquo;</blockquote></blockquote>

<blockquote><blockquote>MQTT broker receives message with topic &ldquo;/bus/tr181&rdquo; over bridge =&gt; MQTT broker uses topic &ldquo;/local/bus/tr181&rdquo; for internal processing</blockquote></blockquote>

<ul>
<li>In outgoing direction (<a href="#D.Device:2.Device.MQTT.Broker.Bridge.Subscription.Direction"><em>Direction</em></a> is either <a href="#D.Device:2.Device.MQTT.Broker.Bridge.Subscription.Direction.out"><em>out</em></a> or <a href="#D.Device:2.Device.MQTT.Broker.Bridge.Subscription.Direction.both"><em>both</em></a>):</li></ul>

<blockquote>For selection of the topics to be sent over the bridge the MQTT broker uses the combination of <em>LocalPrefix</em> and <a href="#D.Device:2.Device.MQTT.Broker.Bridge.Subscription.Topic"><em>Topic</em></a> to match the topics to be sent over bridge, and removes the <em>LocalPrefix</em> from the selected topic before sending it over the bridge.</blockquote>

<blockquote><blockquote><ul>
<li><ul>
<li></li></ul></li></ul></blockquote></blockquote>

<blockquote><em>Example:</em></blockquote>

<blockquote><blockquote>Topic is &ldquo;/bus/+&rdquo;, LocalPrefix is &ldquo;/local&rdquo;, Direction is &ldquo;out&rdquo;</blockquote></blockquote>

<blockquote><blockquote>MQTT broker receives message with topic &ldquo;/local/bus/tr181&rdquo; from a MQTT client =&gt; MQTT broker sends topic &ldquo;/bus/tr181&rdquo; to remote MQTT broker</blockquote></blockquote>

<div class="diffs"><p><strong>Changes in 2.13:</strong></p>

<ul>
<li>Added string <em>:256</em> size</li></ul></div></td>
<td>-</td>
<td>2.10</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.MQTT.Broker.Bridge.Subscription.RemotePrefix">RemotePrefix</span></td>
<td>string(:256)</td>
<td>W</td>
<td><p>The remote prefix is used for remapping topics to the remote MQTT broker topic lists.</p>

<ul>
<li>In incoming direction (<a href="#D.Device:2.Device.MQTT.Broker.Bridge.Subscription.Direction"><em>Direction</em></a> is either <a href="#D.Device:2.Device.MQTT.Broker.Bridge.Subscription.Direction.in"><em>in</em></a> or <a href="#D.Device:2.Device.MQTT.Broker.Bridge.Subscription.Direction.both"><em>both</em></a>):</li></ul>

<blockquote>For remote topics received over the bridge the MQTT broker removes the remote prefix topic from the received topic (before handling the <a href="#D.Device:2.Device.MQTT.Broker.Bridge.Subscription.LocalPrefix"><em>LocalPrefix</em></a>), before processing it.</blockquote>

<blockquote><blockquote><ul>
<li><ul>
<li></li></ul></li></ul></blockquote></blockquote>

<blockquote><em>Example:</em></blockquote>

<blockquote><blockquote>Topic is &ldquo;/bus/+&rdquo;, LocalPrefix is &ldquo;/local&rdquo;, RemotePrefix is &ldquo;/remote&rdquo;, Direction is &ldquo;in&rdquo;</blockquote></blockquote>

<blockquote><blockquote>MQTT broker receives message with topic &ldquo;/remote/bus/tr181&rdquo; over bridge =&gt; MQTT broker uses topic &ldquo;/local/bus/tr181&rdquo; for internal processing</blockquote></blockquote>

<blockquote>During activation of the bridge, the MQTT broker prepends the <a href="#D.Device:2.Device.MQTT.Broker.Bridge.Subscription.Topic"><em>Topic</em></a> with <em>RemotePrefix</em> topic and subscribes to the remote MQTT broker with it, in order to receive all applicable remote topics.</blockquote>

<blockquote><blockquote><ul>
<li><ul>
<li></li></ul></li></ul></blockquote></blockquote>

<blockquote><em>Example:</em></blockquote>

<blockquote><blockquote>Topic is &ldquo;/bus/+&rdquo;, RemotePrefix is &ldquo;/remote&rdquo;, Direction is &ldquo;in&rdquo;</blockquote></blockquote>

<blockquote><blockquote>MQTT broker sends a subscription to the remote MQTT broker with the topic &ldquo;/remote/bus/+&rdquo;.</blockquote></blockquote>

<ul>
<li>In outgoing direction (<a href="#D.Device:2.Device.MQTT.Broker.Bridge.Subscription.Direction"><em>Direction</em></a> is either <a href="#D.Device:2.Device.MQTT.Broker.Bridge.Subscription.Direction.out"><em>out</em></a> or <a href="#D.Device:2.Device.MQTT.Broker.Bridge.Subscription.Direction.both"><em>both</em></a>):</li></ul>

<blockquote>For all topics to be sent over the bridge (<a href="#D.Device:2.Device.MQTT.Broker.Bridge.Subscription.Direction"><em>Direction</em></a> is either <a href="#D.Device:2.Device.MQTT.Broker.Bridge.Subscription.Direction.out"><em>out</em></a> or <a href="#D.Device:2.Device.MQTT.Broker.Bridge.Subscription.Direction.both"><em>both</em></a>), the RemotePrefix will be prepended to the topic after the <a href="#D.Device:2.Device.MQTT.Broker.Bridge.Subscription.LocalPrefix"><em>LocalPrefix</em></a> has been processed and before sending the message over the bridge.</blockquote>

<blockquote><blockquote><ul>
<li><ul>
<li></li></ul></li></ul></blockquote></blockquote>

<blockquote><em>Example:</em></blockquote>

<blockquote><blockquote>Topic is &ldquo;/bus/+&rdquo;, LocalPrefix is &ldquo;/local&rdquo;, RemotePrefix is &ldquo;/remote&rdquo; Direction is &ldquo;out&rdquo;</blockquote></blockquote>

<blockquote><blockquote>MQTT broker receives message with topic &ldquo;/local/bus/tr181&rdquo; from a MQTT client =&gt; MQTT broker sends topic &ldquo;/remote/bus/tr181&rdquo; to remote MQTT broker</blockquote></blockquote>

<div class="diffs"><p><strong>Changes in 2.13:</strong></p>

<ul>
<li>Added string <em>:256</em> size</li></ul></div></td>
<td>-</td>
<td>2.10</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.SoftwareModules.">Device.SoftwareModules.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>Top level object for dynamically managed software applications.</td>
<td>-</td>
<td>2.1</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.SoftwareModules.DeploymentUnit.">Device.SoftwareModules.DeploymentUnit.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>This table serves as the Deployment Unit inventory and contains status information about each Deployment Unit.
A new instance of this table gets created during the installation of a Software Module.</p>

<p>At most one entry in this table can exist with the same values for all of <a href="#D.Device:2.Device.SoftwareModules.DeploymentUnit.UUID"><em>UUID</em></a>, <a href="#D.Device:2.Device.SoftwareModules.DeploymentUnit.Version"><em>Version</em></a> and <a href="#D.Device:2.Device.SoftwareModules.DeploymentUnit.ExecutionEnvRef"><em>ExecutionEnvRef</em></a>, or with a given value for <a href="#D.Device:2.Device.SoftwareModules.DeploymentUnit.Alias"><em>Alias</em></a>.</p></td>
<td>-</td>
<td>2.1</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.SoftwareModules.DeploymentUnit.UUID">UUID</span></td>
<td>string(:36)</td>
<td>R</td>
<td>A Universally Unique Identifier either provided by the ACS, or generated by the CPE, at the time of Deployment Unit Installation. The format of this value is defined by [<a href="#R.RFC4122">RFC4122</a>] Version 3 (Name-Based) and <strong>{{bibref: non-existent <span class="inserted">TR-181i2</span>}}</strong>. This value MUST NOT be altered when the <a href="#D.Device:2.Device.SoftwareModules.DeploymentUnit."><em>DeploymentUnit</em></a> is updated.</td>
<td>-</td>
<td>2.1</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.SoftwareModules.DeploymentUnit.Name">Name</span></td>
<td>string(:64)</td>
<td>R</td>
<td>Indicates the Name of this <a href="#D.Device:2.Device.SoftwareModules.DeploymentUnit."><em>DeploymentUnit</em></a>, which is chosen by the author of the Deployment Unit. The value of this parameter is used in the generation of the <a href="#D.Device:2.Device.SoftwareModules.DeploymentUnit.UUID"><em>UUID</em></a> based on the rules defined in <strong>{{bibref: non-existent <span class="inserted">TR-181i2</span>}}</strong>.</td>
<td>-</td>
<td>2.1</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.SoftwareModules.DeploymentUnit.Vendor">Vendor</span></td>
<td>string(:128)</td>
<td>R</td>
<td>The author of this <a href="#D.Device:2.Device.SoftwareModules.DeploymentUnit."><em>DeploymentUnit</em></a> formatted as a domain name. The value of this parameter is used in the generation of the <a href="#D.Device:2.Device.SoftwareModules.DeploymentUnit.UUID"><em>UUID</em></a> based on the rules defined in <strong>{{bibref: non-existent <span class="inserted">TR-181i2</span>}}</strong>.</td>
<td>-</td>
<td>2.1</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.SoftwareModules.ExecutionUnit.">Device.SoftwareModules.ExecutionUnit.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>This table serves as the Execution Unit inventory and contains both status information about each Execution Unit as well as configurable parameters for each Execution Unit.
Each <a href="#D.Device:2.Device.SoftwareModules.DeploymentUnit."><em>DeploymentUnit</em></a> that is installed can have zero or more Execution Units.
Once a Deployment Unit is installed it populates this table with its contained Execution Units.
When the Deployment Unit (that caused this <em>ExecutionUnit</em> to come into existence) is updated, this instance MAY be removed and new instances MAY come into existence. While the Deployment Unit (that caused this <em>ExecutionUnit</em> to come into existence) is being updated, all <em>ExecutionUnit</em> instances associated with the Deployment Unit will be stopped until the update is complete at which time they will be restored to the state that they were in before the update started.
When the Deployment Unit (that caused this <em>ExecutionUnit</em> to come into existence) is uninstalled, this instance is removed.
Each <em>ExecutionUnit</em> MAY also contain a set of vendor specific parameters displaying status and maintaining configuration that reside under the <a href="#D.Device:2.Device.SoftwareModules.ExecutionUnit.Extensions."><em>Extensions</em></a> object.</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.SoftwareModules.ExecutionUnit.EUID"><em>EUID</em></a>, or with a given value for <a href="#D.Device:2.Device.SoftwareModules.ExecutionUnit.Alias"><em>Alias</em></a>.</p></td>
<td>-</td>
<td>2.1</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.SoftwareModules.ExecutionUnit.ExecutionFaultCode">ExecutionFaultCode</span></td>
<td>string</td>
<td>R</td>
<td><p>If while running or transitioning between states this <a href="#D.Device:2.Device.SoftwareModules.ExecutionUnit."><em>ExecutionUnit</em></a> identifies a fault this parameter embodies the problem. The value of <a href="#D.Device:2.Device.SoftwareModules.ExecutionUnit.ExecutionFaultCode.NoFault"><em>NoFault</em></a> MUST be used when everything is working as intended. Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.SoftwareModules.ExecutionUnit.ExecutionFaultCode.NoFault"><em>NoFault</em></span></li>
<li><span id="D.Device:2.Device.SoftwareModules.ExecutionUnit.ExecutionFaultCode.FailureOnStart"><em>FailureOnStart</em></span></li>
<li><span id="D.Device:2.Device.SoftwareModules.ExecutionUnit.ExecutionFaultCode.FailureOnAutoStart"><em>FailureOnAutoStart</em></span></li>
<li><span id="D.Device:2.Device.SoftwareModules.ExecutionUnit.ExecutionFaultCode.FailureOnStop"><em>FailureOnStop</em></span></li>
<li><span id="D.Device:2.Device.SoftwareModules.ExecutionUnit.ExecutionFaultCode.FailureWhileActive"><em>FailureWhileActive</em></span></li>
<li><span id="D.Device:2.Device.SoftwareModules.ExecutionUnit.ExecutionFaultCode.DependencyFailure"><em>DependencyFailure</em></span></li>
<li><span id="D.Device:2.Device.SoftwareModules.ExecutionUnit.ExecutionFaultCode.UnStartable"><em>UnStartable</em></span>
For fault codes not included in this list, the vendor MAY include vendor-specific values, which MUST use the format defined in <strong>{{bibref: non-existent <span class="inserted">TR-106</span>}}</strong>.</li></ul></td>
<td>-</td>
<td>2.1</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.SoftwareModules.ExecutionUnit.References">References</span></td>
<td>string[]</td>
<td>R</td>
<td>Comma-separated list of strings. Each list item MUST be the Path Name of a table row, or an empty string. Represents the instances of multi-instanced objects that are directly controlled by, and have come into existence because of, this <a href="#D.Device:2.Device.SoftwareModules.ExecutionUnit."><em>ExecutionUnit</em></a>. See <strong>{{bibref: non-existent <span class="inserted">TR-069</span>}}</strong> for more description and some examples. NOTE: All other objects and parameters (i.e. not multi-instanced objects) that this <a href="#D.Device:2.Device.SoftwareModules.ExecutionUnit."><em>ExecutionUnit</em></a> has caused to come into existence can be discovered via the <a href="#D.Device:2.Device.DeviceInfo.SupportedDataModel."><em>DeviceInfo.SupportedDataModel.{i}.</em></a> table.</td>
<td>-</td>
<td>2.1</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.SoftwareModules.ExecutionUnit.Extensions.">Device.SoftwareModules.ExecutionUnit.{i}.Extensions.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object proposes a general location for vendor extensions specific to this Execution Unit, which allows multiple Execution Units to expose parameters without the concern of conflicting parameter names. These vendor extensions are related to displaying status and maintaining configuration for this Execution Unit. It is also possible for the Execution Unit to expose status and configuration parameters within Service objects or as embedded objects and parameters directly within the root data model, in which case the combination of <a href="#D.Device:2.Device.SoftwareModules.ExecutionUnit.References"><em>References</em></a> and <a href="#D.Device:2.Device.SoftwareModules.ExecutionUnit.SupportedDataModelList"><em>SupportedDataModelList</em></a> will be used to determine their locations. See <strong>{{bibref: non-existent <span class="inserted">TR-069</span>}}</strong> for more description and some examples.</td>
<td>-</td>
<td>2.1</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.ETSIM2M.">Device.ETSIM2M.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>The <em>ETSIM2M</em> object represents the management object for the Remote Entity Functions (REM) functions defined in the M2M Functional Architecture [<a href="#R.ETSIM2MFA">ETSIM2MFA</a>].</td>
<td>-</td>
<td>2.6</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.ETSIM2M.SCL.">Device.ETSIM2M.SCL.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td>This object represents an instance of a Service Capability Layer (SCL) for a M2M device or gateway.
The <em>SCL</em> MAY be maintained by the ACS or by the CPE.
When the <em>SCL</em> provides the administration of an SCL that is represented as a <a href="#D.Device:2.Device.SoftwareModules.ExecutionUnit."><em>SoftwareModules.ExecutionUnit</em></a> the <em>SCL</em> is maintained in the <a href="#D.Device:2.Device.SoftwareModules.ExecutionUnit.References"><em>SoftwareModules.ExecutionUnit.{i}.References</em></a> parameter.
Section 5.1.2 of the M2M Functional Architecture [<a href="#R.ETSIM2MFA">ETSIM2MFA</a>] describes the high level event flows for SCL registration.
Section 9.3.2.6.2 of the M2M Functional Architecture [<a href="#R.ETSIM2MFA">ETSIM2MFA</a>] describes the creation/registration of SCLs.
Section 9.3.2.6.4 of the M2M Functional Architecture [<a href="#R.ETSIM2MFA">ETSIM2MFA</a>] describes the update/re-registration of SCLs.
Section 9.3.2.6.5 of the M2M Functional Architecture [<a href="#R.ETSIM2MFA">ETSIM2MFA</a>] describes the deletion/deregistration of SCLs.
At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.ETSIM2M.SCL.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.ETSIM2M.SCL.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.</td>
<td>-</td>
<td>2.6</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.ETSIM2M.SCL.SAFPolicySet.">Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>This object describes the parameters necessary to administer the store-and-forward (SAF) handling policies applied to requests to access remotely hosted resources.
Policies are described by instances of <em>SAFPolicySet</em>. Which instances of <em>SAFPolicySet</em> are used by the SCL is determined by the <a href="#D.Device:2.Device.ETSIM2M.SCL.SAFPolicySet.PolicyScope"><em>PolicyScope</em></a> parameter.
Section 9.3.1.5 of the M2M Functional Architecture [<a href="#R.ETSIM2MFA">ETSIM2MFA</a>] and Section 10.3.1.2.2 of the M2M mIa, dIa and mId Interfaces [<a href="#R.ETSIM2MInterfaces">ETSIM2MInterfaces</a>] describe the behavior for SAF processing.
There is at most one <em>SAFPolicySet</em> instance with the <a href="#D.Device:2.Device.ETSIM2M.SCL.SAFPolicySet.PolicyScope"><em>PolicyScope</em></a> containing a specific application id (APP-ID) URI value within the list.
There is exactly one <em>SAFPolicySet</em> instance with a <a href="#D.Device:2.Device.ETSIM2M.SCL.SAFPolicySet.PolicyScope"><em>PolicyScope</em></a> value of &ldquo;default&rdquo;.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.ETSIM2M.SCL.SAFPolicySet.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.ETSIM2M.SCL.SAFPolicySet.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.</p></td>
<td>-</td>
<td>2.6</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.ETSIM2M.SCL.SAFPolicySet.ANPPolicy.">Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td>This table contains the SAF-handling policies which are controlled by the Access Network Provider(s).
At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.ETSIM2M.SCL.SAFPolicySet.ANPPolicy.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.ETSIM2M.SCL.SAFPolicySet.ANPPolicy.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.
At most one enabled entry in this table can exist with a given value for <a href="#D.Device:2.Device.ETSIM2M.SCL.SAFPolicySet.ANPPolicy.ANName"><em>ANName</em></a>.</td>
<td>-</td>
<td>2.6</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.ETSIM2M.SCL.SAFPolicySet.ANPPolicy.RequestCategory.">Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.RequestCategory.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>This table contains the Request Category (RCAT) policy items for defining when it is appropriate to use the access network for processing requests.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.ETSIM2M.SCL.SAFPolicySet.ANPPolicy.RequestCategory.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.ETSIM2M.SCL.SAFPolicySet.ANPPolicy.RequestCategory.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.
At most one enabled entry in this table can exist with a given value for <a href="#D.Device:2.Device.ETSIM2M.SCL.SAFPolicySet.ANPPolicy.RequestCategory.RCAT"><em>RCAT</em></a>.</p></td>
<td>-</td>
<td>2.6</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.ETSIM2M.SCL.SAFPolicySet.ANPPolicy.RequestCategory.Schedule.">Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.RequestCategory.{i}.Schedule.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>This table contains the schedules that define when it is appropriate to use the access network for processing requests for the specified value of the <a href="#D.Device:2.Device.ETSIM2M.SCL.SAFPolicySet.ANPPolicy.RequestCategory.RCAT"><em>RCAT</em></a>.
The combination of all instances of the <a href="#D.Device:2.Device.ETSIM2M.SCL.SAFPolicySet.ANPPolicy.RequestCategory.Schedule.AbsTimeSpan."><em>AbsTimeSpan</em></a> along with the <a href="#D.Device:2.Device.ETSIM2M.SCL.SAFPolicySet.ANPPolicy.RequestCategory.Schedule.Schedules"><em>Schedules</em></a> parameter makes up the complete schedule for this instance of a <em>Schedule</em>.
The <a href="#D.Device:2.Device.ETSIM2M.SCL.SAFPolicySet.ANPPolicy.RequestCategory.Schedule.Schedules"><em>Schedules</em></a> parameter defines a recurrence of the schedule. If instances of <a href="#D.Device:2.Device.ETSIM2M.SCL.SAFPolicySet.ANPPolicy.RequestCategory.Schedule.AbsTimeSpan."><em>AbsTimeSpan</em></a> exist, these instances places constraints on the schedule recurrence.
If the value of the <a href="#D.Device:2.Device.ETSIM2M.SCL.SAFPolicySet.ANPPolicy.RequestCategory.Schedule.Schedules"><em>Schedules</em></a> parameter is an empty string, at least one enabled instance of <a href="#D.Device:2.Device.ETSIM2M.SCL.SAFPolicySet.ANPPolicy.RequestCategory.Schedule.AbsTimeSpan."><em>AbsTimeSpan</em></a> MUST exist.
Processing behavior for the use of RCAT Schedules is defined in section 10.3.1.2.2 of the M2M mIa, dIa and mId Interfaces [<a href="#R.ETSIM2MInterfaces">ETSIM2MInterfaces</a>] document.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.ETSIM2M.SCL.SAFPolicySet.ANPPolicy.RequestCategory.Schedule.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.ETSIM2M.SCL.SAFPolicySet.ANPPolicy.RequestCategory.Schedule.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.</p></td>
<td>-</td>
<td>2.6</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.ETSIM2M.SCL.SAFPolicySet.ANPPolicy.RequestCategory.Schedule.Schedules">Schedules</span></td>
<td>string[]</td>
<td>W</td>
<td>Comma-separated list of strings. The list is a set of schedule strings. A schedule string is formatted according to the date and time fields defined CRONTAB input file definition in [<a href="#R.POSIXBase">POSIXBase</a>]. The <em>Schedules</em> parameter is used to set the recurrence of the schedule. The timezone used for this parameter is dependent upon the existence of instances of <a href="#D.Device:2.Device.ETSIM2M.SCL.SAFPolicySet.ANPPolicy.RequestCategory.Schedule.AbsTimeSpan."><em>AbsTimeSpan</em></a> for this <a href="#D.Device:2.Device.ETSIM2M.SCL.SAFPolicySet.ANPPolicy.RequestCategory.Schedule."><em>Schedule</em></a>. If instances of <a href="#D.Device:2.Device.ETSIM2M.SCL.SAFPolicySet.ANPPolicy.RequestCategory.Schedule.AbsTimeSpan."><em>AbsTimeSpan</em></a> exist, then the timezone of the <a href="#D.Device:2.Device.ETSIM2M.SCL.SAFPolicySet.ANPPolicy.RequestCategory.Schedule.AbsTimeSpan."><em>AbsTimeSpan</em></a> is used otherwise the UTC timezone is used for this <em>Schedules</em> parameter. Note the command field is not used in this definition and any whitespace or comma characters within a Schedule string MUST be escaped using percent as defined in <strong>{{bibref: non-existent <span class="inserted">TR-106</span>}}</strong> Example of CRONTAB string: <em>“</em> 0-6 * * 1-5“ would mean every minute for the period from 0:00h to 6:00h (inclusive) on any week day (Monday through Friday) and would be represented as &ldquo;<em>%200-6%20</em>%20*%201-5&rdquo; <em>“</em>/15 22-23,0-4 * * 1-5“ would mean every 15 minutes for the period from 22:00h to 04:00h on any week day (Monday through Friday) and would be represented as &ldquo;<em>/15%2022-23%2C0-4%20</em>%20*%201-5&rdquo;</td>
<td><em>&lt;Empty&gt;</em></td>
<td>2.6</td></tr>
<tr class="object inserted">
<td><span id="D.Device:2.Device.PacketCaptureDiagnostics.">Device.PacketCaptureDiagnostics.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>The PacketCaptureDiagnostics object. This diagnostic is used to record packet capture data on a valid (layer 2 or above) interface in libpcap or pcapng format.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.PacketCaptureDiagnostics.DiagnosticsState">DiagnosticsState</span></td>
<td><span title="DiagnosticsState">string</span></td>
<td>W</td>
<td><p>[<a href="#T.DiagnosticsState">DiagnosticsState</a>] Indicates the availability of diagnostics data. Enumeration of:</p>

<p>Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.PacketCaptureDiagnostics.DiagnosticsState.None"><em>None</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.PacketCaptureDiagnostics.DiagnosticsState.Requested"><em>Requested</em></span></li>
<li><span id="D.Device:2.Device.PacketCaptureDiagnostics.DiagnosticsState.Canceled"><em>Canceled</em></span> (OPTIONAL)</li>
<li><span id="D.Device:2.Device.PacketCaptureDiagnostics.DiagnosticsState.Cancel"><em>Cancel</em></span> (OPTIONAL)</li>
<li><span id="D.Device:2.Device.PacketCaptureDiagnostics.DiagnosticsState.Complete"><em>Complete</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.PacketCaptureDiagnostics.DiagnosticsState.Error"><em>Error</em></span> (READONLY, OPTIONAL)</li>
<li><span id="D.Device:2.Device.PacketCaptureDiagnostics.DiagnosticsState.Error_Internal"><em>Error_Internal</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.PacketCaptureDiagnostics.DiagnosticsState.Error_Other"><em>Error_Other</em></span> (READONLY)</li></ul>

<p>If the ACS sets the value of this parameter to <a href="#D.Device:2.Device.PacketCaptureDiagnostics.DiagnosticsState.Requested"><em>Requested</em></a>, the
CPE MUST initiate the corresponding diagnostic test. When writing, the
only allowed values are <a href="#D.Device:2.Device.PacketCaptureDiagnostics.DiagnosticsState.Requested"><em>Requested</em></a> and <a href="#D.Device:2.Device.PacketCaptureDiagnostics.DiagnosticsState.Canceled"><em>Canceled</em></a>. To
ensure the use of the proper test parameters (the writable parameters in
this object), the test parameters MUST be set, and any errors or
inconsistencies in the test parameters MUST be detected, either prior to
or at the same time as (in the same SetParameterValues) setting this
parameter to <a href="#D.Device:2.Device.PacketCaptureDiagnostics.DiagnosticsState.Requested"><em>Requested</em></a>.</p>

<p>When requested, the CPE SHOULD wait until after completion of the
communication session with the ACS before starting the diagnostic test.</p>

<p>When the test is completed, the value of this parameter MUST be either
<a href="#D.Device:2.Device.PacketCaptureDiagnostics.DiagnosticsState.Complete"><em>Complete</em></a> (if the test completed successfully), or one of the
<em>Error</em> values listed above.</p>

<p>If the value of this parameter is anything other than <a href="#D.Device:2.Device.PacketCaptureDiagnostics.DiagnosticsState.Complete"><em>Complete</em></a>,
the values of the results parameters for this test are indeterminate.</p>

<p>When the diagnostic initiated by the ACS is completed (successfully or
not), but not if it is canceled for any reason, the CPE MUST establish a
new connection to the ACS to allow the ACS to view the results,
indicating the Event code <em>8 DIAGNOSTICS COMPLETE</em> in the Inform
message.</p>

<p>After the diagnostic is complete, the value of all result parameters (all
read-only parameters in this object) MUST be retained by the CPE until
either this diagnostic is run again, or the CPE reboots. After a reboot,
if the CPE has not retained the result parameters from the most recent
test, it MUST set the value of this parameter to <a href="#D.Device:2.Device.PacketCaptureDiagnostics.DiagnosticsState.None"><em>None</em></a>.</p>

<p>Modifying any of the writable parameters in this object except for this
one MUST result in the value of this parameter being set to
<a href="#D.Device:2.Device.PacketCaptureDiagnostics.DiagnosticsState.None"><em>None</em></a>.</p>

<p>While the test is in progress, modifying any of the writable parameters
in this object except for this one MUST result in the test being
terminated and the value of this parameter being set to <a href="#D.Device:2.Device.PacketCaptureDiagnostics.DiagnosticsState.None"><em>None</em></a>.</p>

<p>While the test is in progress, setting this parameter to
<a href="#D.Device:2.Device.PacketCaptureDiagnostics.DiagnosticsState.Requested"><em>Requested</em></a> (and possibly modifying other writable parameters in
this object) MUST result in the test being terminated and then restarted
using the current values of the test parameters.</p>

<p>While the test is in progress, setting this parameter to
<a href="#D.Device:2.Device.PacketCaptureDiagnostics.DiagnosticsState.Canceled"><em>Canceled</em></a> MUST result in the test being canceled and the value of
this parameter being set to <a href="#D.Device:2.Device.PacketCaptureDiagnostics.DiagnosticsState.None"><em>None</em></a>. If the CPE does not support
the <a href="#D.Device:2.Device.PacketCaptureDiagnostics.DiagnosticsState.Canceled"><em>Canceled</em></a> value, it MUST return a SPV error with &ldquo;Invalid
Parameter value&rdquo; (9007) to the ACS instead.</p>

<p>Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.PacketCaptureDiagnostics.DiagnosticsState.None"><em>None</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.PacketCaptureDiagnostics.DiagnosticsState.Requested"><em>Requested</em></span></li>
<li><span id="D.Device:2.Device.PacketCaptureDiagnostics.DiagnosticsState.Canceled"><em>Canceled</em></span> (OPTIONAL)</li>
<li><span id="D.Device:2.Device.PacketCaptureDiagnostics.DiagnosticsState.Cancel"><em>Cancel</em></span> (OPTIONAL)</li>
<li><span id="D.Device:2.Device.PacketCaptureDiagnostics.DiagnosticsState.Complete"><em>Complete</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.PacketCaptureDiagnostics.DiagnosticsState.Error"><em>Error</em></span> (READONLY, OPTIONAL)</li>
<li><span id="D.Device:2.Device.PacketCaptureDiagnostics.DiagnosticsState.Error_Internal"><em>Error_Internal</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.PacketCaptureDiagnostics.DiagnosticsState.Error_Other"><em>Error_Other</em></span> (READONLY)</li></ul></td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.PacketCaptureDiagnostics.PacketCaptureResultNumberOfEntries">PacketCaptureResultNumberOfEntries</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>The number of entries in the <a href="#D.Device:2.Device.PacketCaptureDiagnostics.PacketCaptureResult."><em>PacketCaptureResult</em></a> table.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.PacketCaptureDiagnostics.Interface">Interface</span></td>
<td>string(:256)</td>
<td>W</td>
<td>The value MUST be the Path Name of a table row. A reference to a (layer 2 or above) interface object that will be the target of this packet capture diagnostic.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.PacketCaptureDiagnostics.Format">Format</span></td>
<td>string</td>
<td>R</td>
<td><p>This indicates whether the network trace will be recorded in libpcap [<a href="#R.LIBPCAP">LIBPCAP</a>] or pcapng format, and is dependent on the underlying method of performing a network trace.</p>

<p>Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.PacketCaptureDiagnostics.Format.libpcap"><em>libpcap</em></span> (The packet data is recorded in libpcap [<a href="#R.LIBPCAP">LIBPCAP</a>] format)</li>
<li><span id="D.Device:2.Device.PacketCaptureDiagnostics.Format.pcapng"><em>pcapng</em></span> (The packet data is recorded in pcapng format)</li></ul></td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.PacketCaptureDiagnostics.Duration">Duration</span></td>
<td>unsignedInt(1:)</td>
<td>W</td>
<td>The duration in <em>seconds</em> to copy packets to the file target. The diagnostic completes when either the <em>Duration</em>, <a href="#D.Device:2.Device.PacketCaptureDiagnostics.PacketCount"><em>PacketCount</em></a>, or <a href="#D.Device:2.Device.PacketCaptureDiagnostics.ByteCount"><em>ByteCount</em></a> conditions are met.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.PacketCaptureDiagnostics.PacketCount">PacketCount</span></td>
<td>unsignedInt</td>
<td>W</td>
<td>The maximum number of packets to record to the file target. A value of zero (0) indicates no limit. The diagnostic completes when the <a href="#D.Device:2.Device.PacketCaptureDiagnostics.Duration"><em>Duration</em></a>, <a href="#D.Device:2.Device.PacketCaptureDiagnostics.ByteCount"><em>ByteCount</em></a>, or <em>PacketCount</em> conditions are met.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.PacketCaptureDiagnostics.ByteCount">ByteCount</span></td>
<td>unsignedInt</td>
<td>W</td>
<td>The maximum number of bytes to record to the file target. A value of zero (0) indicates no limit. The diagnostic completes when <a href="#D.Device:2.Device.PacketCaptureDiagnostics.Duration"><em>Duration</em></a>, <a href="#D.Device:2.Device.PacketCaptureDiagnostics.PacketCount"><em>PacketCount</em></a> or <em>ByteCount</em> conditions are met.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.PacketCaptureDiagnostics.FileTarget">FileTarget</span></td>
<td>string(:2048)</td>
<td>W</td>
<td>URL, as defined in [<a href="#R.RFC3986">RFC3986</a>], specifying the destination file location. HTTP and HTTPS transports MUST be supported. Other transports MAY be supported.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.PacketCaptureDiagnostics.FilterExpression">FilterExpression</span></td>
<td>string(:256)</td>
<td>W</td>
<td>A ([<a href="#R.BPF">BPF</a>]) formatted expression used to restrict the types of network packets that are recorded to <a href="#D.Device:2.Device.PacketCaptureDiagnostics.FileTarget"><em>FileTarget</em></a>.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.PacketCaptureDiagnostics.Username">Username</span></td>
<td>string(:256)</td>
<td>W</td>
<td>Username to be used by the Agent to authenticate with the file location. This string is set to an empty string if no authentication is required.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.PacketCaptureDiagnostics.Password">Password</span></td>
<td>string(:256)</td>
<td>W</td>
<td><p>Password to be used by the Agent to authenticate with the file location. This string is set to an empty string if no authentication is required. When read, this parameter returns an empty string, regardless of the actual value.</p>

<p>When read, this parameter returns an empty string, regardless of the actual value.</p></td>
<td>-</td>
<td>2.13</td></tr>
<tr class="object inserted">
<td><span id="D.Device:2.Device.PacketCaptureDiagnostics.PacketCaptureResult.">Device.PacketCaptureDiagnostics.PacketCaptureResult.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td>Results for individual packet capture diagnostics. Packet capture files whose FileLocation is local to the system SHOULD be deleted when the next diagnostic is run, or upon a system reboot.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.PacketCaptureDiagnostics.PacketCaptureResult.FileLocation">FileLocation</span></td>
<td>string(:2048)</td>
<td>R</td>
<td>URL, as defined in [<a href="#R.RFC3986">RFC3986</a>], specifying the resulting file location of the packet capture record that triggered this result. This MAY be different than the location specified in FileTarget.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.PacketCaptureDiagnostics.PacketCaptureResult.StartTime">StartTime</span></td>
<td>dateTime</td>
<td>R</td>
<td>The local system time at which the capture was started.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.PacketCaptureDiagnostics.PacketCaptureResult.EndTime">EndTime</span></td>
<td>dateTime</td>
<td>R</td>
<td>The local system time at which the capture was completed.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.PacketCaptureDiagnostics.PacketCaptureResult.Count">Count</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>The number of packets recorded to the file target.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.">Device.WiFi.NeighboringWiFiDiagnostic.Result.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>Neighboring SSID table. This table models the other WiFi SSIDs that this device is able to receive.</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.BSSID"><em>BSSID</em></a>.</p></td>
<td>-</td>
<td>2.7</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.SecurityModeEnabled">SecurityModeEnabled</span></td>
<td>string</td>
<td>R</td>
<td><p>The type of encryption the neighboring WiFi SSID advertises.</p>

<p>Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.SecurityModeEnabled.None"><em>None</em></span></li>
<li><span id="D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.SecurityModeEnabled.WEP"><em>WEP</em></span></li>
<li><span id="D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.SecurityModeEnabled.WPA"><em>WPA</em></span></li>
<li><span id="D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.SecurityModeEnabled.WPA2"><em>WPA2</em></span></li>
<li><span id="D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.SecurityModeEnabled.WPA-WPA2"><em>WPA-WPA2</em></span></li>
<li><span id="D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.SecurityModeEnabled.WPA-Enterprise"><em>WPA-Enterprise</em></span></li>
<li><span id="D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.SecurityModeEnabled.WPA2-Enterprise"><em>WPA2-Enterprise</em></span></li>
<li><span id="D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.SecurityModeEnabled.WPA-WPA2-Enterprise"><em>WPA-WPA2-Enterprise</em></span></li>
<li><span id="D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.SecurityModeEnabled.WPA3-SAE"><em>WPA3-SAE</em></span></li>
<li><span id="D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.SecurityModeEnabled.WPA2-PSK-WPA3-SAE"><em>WPA2-PSK-WPA3-SAE</em></span></li>
<li><span id="D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.SecurityModeEnabled.WPA3-Enterprise"><em>WPA3-Enterprise</em></span></li></ul>

<div class="diffs"><p><strong>Changes in 2.13:</strong></p>

<ul>
<li>Added string <em>WPA3-SAE</em> enumeration</li>
<li>Added string <em>WPA2-PSK-WPA3-SAE</em> enumeration</li>
<li>Added string <em>WPA3-Enterprise</em> enumeration</li></ul></div></td>
<td>-</td>
<td>2.7</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.EncryptionMode">EncryptionMode</span></td>
<td>string[]</td>
<td>R</td>
<td><p>Comma-separated list of strings. The type of encryption the neighboring WiFi SSID advertises.<span class="inserted"> When <a href="#D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.SecurityModeEnabled"><em>SecurityModeEnabled</em></a> is one of <a href="#D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.SecurityModeEnabled.WPA3-SAE"><em>WPA3-SAE</em></a>, <a href="#D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.SecurityModeEnabled.WPA2-PSK-WPA3-SAE"><em>WPA2-PSK-WPA3-SAE</em></a>, or <a href="#D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.SecurityModeEnabled.WPA3-Enterprise"><em>WPA3-Enterprise</em></a>, <a href="#D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.EncryptionMode.TKIP"><em>TKIP</em></a> is not valid, and should not be in the list.</span></p>

<p>Each list item is an enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.EncryptionMode.TKIP"><em>TKIP</em></span></li>
<li><span id="D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.EncryptionMode.AES"><em>AES</em></span></li></ul></td>
<td>-</td>
<td>2.7</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.SupportedStandards">SupportedStandards</span></td>
<td>string[]</td>
<td>R</td>
<td><p>Comma-separated list of strings. List items indicate which IEEE 802.11 standards this <a href="#D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result."><em>Result</em></a> instance can support simultaneously, in the frequency band specified by <a href="#D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.OperatingFrequencyBand"><em>OperatingFrequencyBand</em></a>. Each list item is an enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.SupportedStandards.a"><em>a</em></span> ([<a href="#R.802.11a-1999">802.11a-1999</a>])</li>
<li><span id="D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.SupportedStandards.b"><em>b</em></span> ([<a href="#R.802.11b-1999">802.11b-1999</a>])</li>
<li><span id="D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.SupportedStandards.g"><em>g</em></span> ([<a href="#R.802.11g-2003">802.11g-2003</a>])</li>
<li><span id="D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.SupportedStandards.n"><em>n</em></span> ([<a href="#R.802.11n-2009">802.11n-2009</a>])</li>
<li><span id="D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.SupportedStandards.ac"><em>ac</em></span> ([<a href="#R.802.11ac-2013">802.11ac-2013</a>])</li>
<li><span id="D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.SupportedStandards.ax"><em>ax</em></span> ([<a href="#R.802.11ax">802.11ax</a>])
Each value indicates support for the indicated standard. If <a href="#D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.OperatingFrequencyBand"><em>OperatingFrequencyBand</em></a> is set to <a href="#D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.OperatingFrequencyBand.2.4GHz"><em>2.4GHz</em></a>, only values <a href="#D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.SupportedStandards.b"><em>b</em></a>, <a href="#D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.SupportedStandards.g"><em>g</em></a>, <a href="#D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.SupportedStandards.n"><em>n</em></a><span class="inserted">, <a href="#D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.SupportedStandards.ax"><em>ax</em></a></span> are allowed. If <a href="#D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.OperatingFrequencyBand"><em>OperatingFrequencyBand</em></a> is set to <a href="#D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.OperatingFrequencyBand.5GHz"><em>5GHz</em></a>, only values <a href="#D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.SupportedStandards.a"><em>a</em></a>, <a href="#D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.SupportedStandards.n"><em>n</em></a>, <a href="#D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.SupportedStandards.ac"><em>ac</em></a><span class="inserted">, <a href="#D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.SupportedStandards.ax"><em>ax</em></a></span> are allowed.</li></ul>

<div class="diffs"><p><strong>Changes in 2.13:</strong></p>

<ul>
<li>Added string <em>ax</em> enumeration</li></ul></div></td>
<td>-</td>
<td>2.7</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.OperatingStandards">OperatingStandards</span></td>
<td>string[]</td>
<td>R</td>
<td>Each list item MUST be a member of the list reported by the <a href="#D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.SupportedStandards"><em>SupportedStandards</em></a> parameter. Comma-separated list of strings. List items indicate which IEEE 802.11 standard that is detected for this <a href="#D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result."><em>Result</em></a>. Each value indicates support for the indicated standard. If <a href="#D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.OperatingFrequencyBand"><em>OperatingFrequencyBand</em></a> is set to <a href="#D.Device:2.Device.WiFi.Radio.SupportedFrequencyBands.2.4GHz"><em>2.4GHz</em></a>, only values <a href="#D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.SupportedStandards.b"><em>b</em></a>, <a href="#D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.SupportedStandards.g"><em>g</em></a>, <a href="#D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.SupportedStandards.n"><em>n</em></a><span class="inserted">, <a href="#D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.SupportedStandards.ax"><em>ax</em></a></span> are allowed. If <a href="#D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.OperatingFrequencyBand"><em>OperatingFrequencyBand</em></a> is set to <a href="#D.Device:2.Device.WiFi.Radio.SupportedFrequencyBands.5GHz"><em>5GHz</em></a>, only values <a href="#D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.SupportedStandards.a"><em>a</em></a>, <a href="#D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.SupportedStandards.n"><em>n</em></a>, <strong>{{enum: non-existent ac, <a href="#D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.SupportedStandards.ax"><em>ax</em></a>}}</strong> are allowed. For example, a value of &ldquo;g,b&rdquo; (or &ldquo;b,g&rdquo; - order is not important) means that the 802.11g standard [<a href="#R.802.11g-2003">802.11g-2003</a>] is used with a backwards-compatible mode for 802.11b [<a href="#R.802.11b-1999">802.11b-1999</a>]. A value of &ldquo;g&rdquo; means that only the 802.11g standard can be used.</td>
<td>-</td>
<td>2.7</td></tr></tbody></table>

<hr/>

<p>Generated by <a href="https://www.broadband-forum.org">Broadband Forum</a> <a href="https://pypi.org/project/bbfreport">bbfreport</a> v2.2.0 (2024-07-23 version) on 2024-07-23 at 11:10:31 UTC.<br/>report.py –include ../../install/cwmp –output <stdout> –transform diff –format markdown tr-181-2-12-0-cwmp.xml tr-181-2-13-0-cwmp.xml</p></div>

<div id="TOC"><h1 id="table-of-contents">Table of Contents</h1>

<ul class="collapsed expanded">
<li><a href="#data-types">Data Types</a></li>
<li><a href="#references">References</a></li>
<li><a href="#legend">Legend</a></li>
<li><span class="collapsible expandable"><a href="#device213-data-model">Device:2.13 Data Model</a></span>

<ul class="collapsed expanded">
<li><span class="collapsible expandable"><a href="#D.Device:2.Device.">Device.</a></span>

<ul class="collapsed expanded ordered">
<li><a href="#D.Device:2.Device.DeviceInfo.">DeviceInfo.</a></li>
<li><span class="expandable"><a href="#D.Device:2.Device.ManagementServer.">ManagementServer.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.ManagementServer.ManageableDevice.">ManageableDevice.{i}.</a></li>
<li><a href="#D.Device:2.Device.ManagementServer.AutonomousTransferCompletePolicy.">AutonomousTransferCompletePolicy.</a></li>
<li><a href="#D.Device:2.Device.ManagementServer.DUStateChangeComplPolicy.">DUStateChangeComplPolicy.</a></li>
<li><a href="#D.Device:2.Device.ManagementServer.EmbeddedDevice.">EmbeddedDevice.{i}.</a></li>
<li><a href="#D.Device:2.Device.ManagementServer.VirtualDevice.">VirtualDevice.{i}.</a></li>
<li><a href="#D.Device:2.Device.ManagementServer.StandbyPolicy.">StandbyPolicy.</a></li>
<li><a href="#D.Device:2.Device.ManagementServer.HeartbeatPolicy.">HeartbeatPolicy.</a></li>
<li><a href="#D.Device:2.Device.DeviceInfo.VendorConfigFile.">VendorConfigFile.{i}.</a></li>
<li><a href="#D.Device:2.Device.DeviceInfo.ProcessStatus.">ProcessStatus.</a></li>
<li><span class="expandable"><a href="#D.Device:2.Device.DeviceInfo.TemperatureStatus.">TemperatureStatus.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.DeviceInfo.TemperatureStatus.TemperatureSensor.">TemperatureSensor.{i}.</a></li></ul></li>
<li><a href="#D.Device:2.Device.DeviceInfo.Processor.">Processor.{i}.</a></li>
<li><a href="#D.Device:2.Device.DeviceInfo.VendorLogFile.">VendorLogFile.{i}.</a></li>
<li><a href="#D.Device:2.Device.DeviceInfo.Location.">Location.{i}.</a></li>
<li><a href="#D.Device:2.Device.DeviceInfo.SupportedDataModel.">SupportedDataModel.{i}.</a></li>
<li><a href="#D.Device:2.Device.DeviceInfo.ProxierInfo.">ProxierInfo.</a></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.DSL.">DSL.</a></span>

<ul class="collapsed">
<li><span class="expandable"><a href="#D.Device:2.Device.DSL.BondingGroup.">BondingGroup.{i}.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.DSL.BondingGroup.BondedChannel.">BondedChannel.{i}.</a></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.DSL.Diagnostics.">Diagnostics.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.DSL.Diagnostics.SELTUER.">SELTUER.</a></li>
<li><a href="#D.Device:2.Device.DSL.Diagnostics.SELTQLN.">SELTQLN.</a></li>
<li><a href="#D.Device:2.Device.DSL.Diagnostics.SELTP.">SELTP.</a></li></ul></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.Cellular.">Cellular.</a></span>

<ul class="collapsed">
<li><span class="expandable"><a href="#D.Device:2.Device.Cellular.Interface.">Interface.{i}.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.Cellular.Interface.USIM.">USIM.</a></li></ul></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.Ethernet.">Ethernet.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.Ethernet.WoL.">WoL.</a></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.USB.">USB.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.USB.USBHosts.">USBHosts.</a></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.Ghn.">Ghn.</a></span>

<ul class="collapsed">
<li><span class="expandable"><a href="#D.Device:2.Device.Ghn.Diagnostics.">Diagnostics.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.Ghn.Diagnostics.PHYThroughput.">PHYThroughput.</a></li></ul></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.WiFi.">WiFi.</a></span>

<ul class="collapsed">
<li><span class="expandable"><a href="#D.Device:2.Device.WiFi.MultiAP.">MultiAP.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.WiFi.MultiAP.SteeringSummaryStats.">SteeringSummaryStats.</a></li>
<li><span class="expandable"><a href="#D.Device:2.Device.WiFi.MultiAP.APDevice.">APDevice.{i}.</a></span>

<ul class="collapsed">
<li><span class="expandable"><a href="#D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.">Radio.{i}.</a></span>

<ul class="collapsed">
<li><span class="expandable"><a href="#D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.AP.">AP.{i}.</a></span>

<ul class="collapsed">
<li><span class="expandable"><a href="#D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.AP.AssociatedDevice.">AssociatedDevice.{i}.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.AP.AssociatedDevice.Stats.">Stats.</a></li>
<li><a href="#D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.AP.AssociatedDevice.SteeringSummaryStats.">SteeringSummaryStats.</a></li>
<li><a href="#D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.AP.AssociatedDevice.SteeringHistory.">SteeringHistory.{i}.</a></li></ul></li></ul></li></ul></li></ul></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.WiFi.DataElements.">DataElements.</a></span>

<ul class="collapsed">
<li><span class="expandable"><a href="#D.Device:2.Device.WiFi.DataElements.Network.">Network.</a></span>

<ul class="collapsed">
<li><span class="expandable"><a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.">Device.{i}.</a></span>

<ul class="collapsed">
<li><span class="expandable"><a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.">Radio.{i}.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BackhaulSta.">BackhaulSta.</a></li>
<li><span class="expandable"><a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.Capabilities.">Capabilities.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.Capabilities.CapableOperatingClassProfile.">CapableOperatingClassProfile.{i}.</a></li></ul></li>
<li><a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.CurrentOperatingClassProfile.">CurrentOperatingClassProfile.{i}.</a></li>
<li><span class="expandable"><a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.">BSS.{i}.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.STA.">STA.{i}.</a></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.ScanResult.">ScanResult.{i}.</a></span>

<ul class="collapsed">
<li><span class="expandable"><a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.ScanResult.OpClassScan.">OpClassScan.{i}.</a></span>

<ul class="collapsed">
<li><span class="expandable"><a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.ScanResult.OpClassScan.ChannelScan.">ChannelScan.{i}.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.ScanResult.OpClassScan.ChannelScan.NeighborBSS.">NeighborBSS.{i}.</a></li></ul></li></ul></li></ul></li>
<li><a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.UnassociatedSTA.">UnassociatedSTA.{i}.</a></li></ul></li></ul></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.WiFi.DataElements.AssociationEvent.">AssociationEvent.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.WiFi.DataElements.AssociationEvent.AssociationEventData.">AssociationEventData.{i}.</a></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.WiFi.DataElements.DisassociationEvent.">DisassociationEvent.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.WiFi.DataElements.DisassociationEvent.DisassociationEventData.">DisassociationEventData.{i}.</a></li></ul></li></ul></li>
<li><a href="#D.Device:2.Device.WiFi.Radio.">Radio.{i}.</a></li>
<li><span class="expandable"><a href="#D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.">NeighboringWiFiDiagnostic.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.WiFi.Radio.Stats.">Stats.</a></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.WiFi.SSID.">SSID.{i}.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.WiFi.SSID.Stats.">Stats.</a></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.WiFi.AccessPoint.">AccessPoint.{i}.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.WiFi.AccessPoint.Security.">Security.</a></li>
<li><a href="#D.Device:2.Device.WiFi.AccessPoint.AssociatedDevice.">AssociatedDevice.{i}.</a></li>
<li><span class="expandable"><a href="#D.Device:2.Device.WiFi.AccessPoint.AC.">AC.{i}.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.WiFi.AccessPoint.AC.Stats.">Stats.</a></li></ul></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.WiFi.EndPoint.">EndPoint.{i}.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.WiFi.EndPoint.Security.">Security.</a></li>
<li><span class="expandable"><a href="#D.Device:2.Device.WiFi.EndPoint.Profile.">Profile.{i}.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.WiFi.EndPoint.Profile.Security.">Security.</a></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.WiFi.EndPoint.AC.">AC.{i}.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.WiFi.EndPoint.AC.Stats.">Stats.</a></li></ul></li></ul></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.ZigBee.">ZigBee.</a></span>

<ul class="collapsed">
<li><span class="expandable"><a href="#D.Device:2.Device.ZigBee.Discovery.">Discovery.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.ZigBee.Discovery.AreaNetwork.">AreaNetwork.{i}.</a></li></ul></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.Bridging.">Bridging.</a></span>

<ul class="collapsed">
<li><span class="expandable"><a href="#D.Device:2.Device.Bridging.Bridge.">Bridge.{i}.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.Bridging.Bridge.Port.">Port.{i}.</a></li></ul></li>
<li><a href="#D.Device:2.Device.Bridging.ProviderBridge.">ProviderBridge.{i}.</a></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.IP.">IP.</a></span>

<ul class="collapsed">
<li><span class="expandable"><a href="#D.Device:2.Device.IP.Interface.">Interface.{i}.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.IP.Interface.IPv4Address.">IPv4Address.{i}.</a></li>
<li><a href="#D.Device:2.Device.IP.Interface.IPv6Address.">IPv6Address.{i}.</a></li>
<li><a href="#D.Device:2.Device.IP.Interface.IPv6Prefix.">IPv6Prefix.{i}.</a></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.IP.Diagnostics.">Diagnostics.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.">DownloadDiagnostics.</a></li>
<li><a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.">UploadDiagnostics.</a></li>
<li><span class="expandable"><a href="#D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.">UDPEchoDiagnostics.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.IndividualPacketResult.">IndividualPacketResult.{i}.</a></li></ul></li>
<li><a href="#D.Device:2.Device.IP.Diagnostics.ServerSelectionDiagnostics.">ServerSelectionDiagnostics.</a></li></ul></li></ul></li>
<li><a href="#D.Device:2.Device.IPsec.">IPsec.</a></li>
<li><span class="expandable"><a href="#D.Device:2.Device.MAP.">MAP.</a></span>

<ul class="collapsed">
<li><span class="expandable"><a href="#D.Device:2.Device.MAP.Domain.">Domain.{i}.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.MAP.Domain.Rule.">Rule.{i}.</a></li></ul></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.Routing.">Routing.</a></span>

<ul class="collapsed">
<li><span class="expandable"><a href="#D.Device:2.Device.Routing.Router.">Router.{i}.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.Routing.Router.IPv4Forwarding.">IPv4Forwarding.{i}.</a></li>
<li><a href="#D.Device:2.Device.Routing.Router.IPv6Forwarding.">IPv6Forwarding.{i}.</a></li></ul></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.NeighborDiscovery.">NeighborDiscovery.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.NeighborDiscovery.InterfaceSetting.">InterfaceSetting.{i}.</a></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.IPv6rd.">IPv6rd.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.IPv6rd.InterfaceSetting.">InterfaceSetting.{i}.</a></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.DSLite.">DSLite.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.DSLite.InterfaceSetting.">InterfaceSetting.{i}.</a></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.QoS.">QoS.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.QoS.App.">App.{i}.</a></li>
<li><a href="#D.Device:2.Device.QoS.Flow.">Flow.{i}.</a></li>
<li><a href="#D.Device:2.Device.QoS.Policer.">Policer.{i}.</a></li>
<li><a href="#D.Device:2.Device.QoS.QueueStats.">QueueStats.{i}.</a></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.Hosts.">Hosts.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.Hosts.Host.">Host.{i}.</a></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.DNS.">DNS.</a></span>

<ul class="collapsed">
<li><span class="expandable"><a href="#D.Device:2.Device.DNS.Client.">Client.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.DNS.Client.Server.">Server.{i}.</a></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.DNS.Relay.">Relay.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.DNS.Relay.Forwarding.">Forwarding.{i}.</a></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.DNS.Diagnostics.">Diagnostics.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.DNS.Diagnostics.NSLookupDiagnostics.">NSLookupDiagnostics.</a></li></ul></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.NAT.">NAT.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.NAT.InterfaceSetting.">InterfaceSetting.{i}.</a></li>
<li><a href="#D.Device:2.Device.NAT.PortMapping.">PortMapping.{i}.</a></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.PCP.">PCP.</a></span>

<ul class="collapsed">
<li><span class="expandable"><a href="#D.Device:2.Device.PCP.Client.">Client.{i}.</a></span>

<ul class="collapsed">
<li><span class="expandable"><a href="#D.Device:2.Device.PCP.Client.Server.">Server.{i}.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.PCP.Client.Server.InboundMapping.">InboundMapping.{i}.</a></li>
<li><a href="#D.Device:2.Device.PCP.Client.Server.OutboundMapping.">OutboundMapping.{i}.</a></li></ul></li></ul></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.DHCPv4.">DHCPv4.</a></span>

<ul class="collapsed">
<li><span class="expandable"><a href="#D.Device:2.Device.DHCPv4.Server.">Server.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.DHCPv4.Server.Pool.">Pool.{i}.</a></li></ul></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.DHCPv6.">DHCPv6.</a></span>

<ul class="collapsed">
<li><span class="expandable"><a href="#D.Device:2.Device.DHCPv6.Server.">Server.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.DHCPv6.Server.Pool.">Pool.{i}.</a></li></ul></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.SmartCardReaders.">SmartCardReaders.</a></span>

<ul class="collapsed">
<li><span class="expandable"><a href="#D.Device:2.Device.SmartCardReaders.SmartCardReader.">SmartCardReader.{i}.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.SmartCardReaders.SmartCardReader.SmartCard.">SmartCard.</a></li></ul></li></ul></li>
<li><a href="#D.Device:2.Device.SelfTestDiagnostics.">SelfTestDiagnostics.</a></li>
<li><a href="#D.Device:2.Device.Firewall.">Firewall.</a></li>
<li><span class="expandable"><a href="#D.Device:2.Device.PeriodicStatistics.">PeriodicStatistics.</a></span>

<ul class="collapsed">
<li><span class="expandable"><a href="#D.Device:2.Device.PeriodicStatistics.SampleSet.">SampleSet.{i}.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.PeriodicStatistics.SampleSet.Parameter.">Parameter.{i}.</a></li></ul></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.FaultMgmt.">FaultMgmt.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.FaultMgmt.CurrentAlarm.">CurrentAlarm.{i}.</a></li>
<li><a href="#D.Device:2.Device.FaultMgmt.ExpeditedEvent.">ExpeditedEvent.{i}.</a></li>
<li><a href="#D.Device:2.Device.FaultMgmt.QueuedEvent.">QueuedEvent.{i}.</a></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.FAP.">FAP.</a></span>

<ul class="collapsed">
<li><span class="expandable"><a href="#D.Device:2.Device.FAP.GPS.">GPS.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.FAP.GPS.ContinuousGPSStatus.">ContinuousGPSStatus.</a></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.FAP.PerfMgmt.">PerfMgmt.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.FAP.PerfMgmt.Config.">Config.{i}.</a></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.FAP.ApplicationPlatform.">ApplicationPlatform.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.FAP.ApplicationPlatform.Control.">Control.</a></li></ul></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.BulkData.">BulkData.</a></span>

<ul class="collapsed">
<li><span class="expandable"><a href="#D.Device:2.Device.BulkData.Profile.">Profile.{i}.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.BulkData.Profile.Parameter.">Parameter.{i}.</a></li>
<li><a href="#D.Device:2.Device.BulkData.Profile.CSVEncoding.">CSVEncoding.</a></li>
<li><a href="#D.Device:2.Device.BulkData.Profile.JSONEncoding.">JSONEncoding.</a></li>
<li><span class="expandable"><a href="#D.Device:2.Device.BulkData.Profile.HTTP.">HTTP.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.BulkData.Profile.HTTP.RequestURIParameter.">RequestURIParameter.{i}.</a></li></ul></li></ul></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.XMPP.">XMPP.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.XMPP.Connection.">Connection.{i}.</a></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.IEEE1905.">IEEE1905.</a></span>

<ul class="collapsed">
<li><span class="expandable"><a href="#D.Device:2.Device.IEEE1905.AL.">AL.</a></span>

<ul class="collapsed">
<li><span class="expandable"><a href="#D.Device:2.Device.IEEE1905.AL.NetworkTopology.">NetworkTopology.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.">IEEE1905Device.{i}.</a></li></ul></li></ul></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.MQTT.">MQTT.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.MQTT.Capabilities.">Capabilities.</a></li>
<li><span class="expandable"><a href="#D.Device:2.Device.MQTT.Client.">Client.{i}.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.MQTT.Client.Subscription.">Subscription.{i}.</a></li>
<li><a href="#D.Device:2.Device.MQTT.Client.UserProperty.">UserProperty.{i}.</a></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.MQTT.Broker.">Broker.{i}.</a></span>

<ul class="collapsed">
<li><span class="expandable"><a href="#D.Device:2.Device.MQTT.Broker.Bridge.">Bridge.{i}.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.MQTT.Broker.Bridge.Subscription.">Subscription.{i}.</a></li></ul></li></ul></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.SoftwareModules.">SoftwareModules.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.SoftwareModules.DeploymentUnit.">DeploymentUnit.{i}.</a></li>
<li><span class="expandable"><a href="#D.Device:2.Device.SoftwareModules.ExecutionUnit.">ExecutionUnit.{i}.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.SoftwareModules.ExecutionUnit.Extensions.">Extensions.</a></li></ul></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.ETSIM2M.">ETSIM2M.</a></span>

<ul class="collapsed">
<li><span class="expandable"><a href="#D.Device:2.Device.ETSIM2M.SCL.">SCL.{i}.</a></span>

<ul class="collapsed">
<li><span class="expandable"><a href="#D.Device:2.Device.ETSIM2M.SCL.SAFPolicySet.">SAFPolicySet.{i}.</a></span>

<ul class="collapsed">
<li><span class="expandable"><a href="#D.Device:2.Device.ETSIM2M.SCL.SAFPolicySet.ANPPolicy.">ANPPolicy.{i}.</a></span>

<ul class="collapsed">
<li><span class="expandable"><a href="#D.Device:2.Device.ETSIM2M.SCL.SAFPolicySet.ANPPolicy.RequestCategory.">RequestCategory.{i}.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.ETSIM2M.SCL.SAFPolicySet.ANPPolicy.RequestCategory.Schedule.">Schedule.{i}.</a></li></ul></li></ul></li></ul></li></ul></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.PacketCaptureDiagnostics.">PacketCaptureDiagnostics.</a></span>

<ul class="collapsed">
<li><span class="expandable"><a href="#D.Device:2.Device.PacketCaptureDiagnostics.PacketCaptureResult.">PacketCaptureResult.{i}.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.">Result.{i}.</a></li></ul></li></ul></li></ul></li></ul></li></ul></div>
</body>
</html>
